我目前正在创建一个MVC ASP.NET应用程序,其中从不同位置加载多个小部件。我有大部分的逻辑,但我试图从不同的位置加载小部件而不是原来的。
当我使用此
时,一切正常foreach (WidgetPrototype.Models.Widget widget in Model)
{
<blockquote style="border-style: outset">
@Html.Partial(widget.Name)
</blockquote>
}
但是当我移动文件以测试从其他位置加载视图时,将我的代码更改为
foreach (WidgetPrototype.Models.Widget widget in Model)
{
<blockquote style="border-style: outset">
@Html.Partial(@"D:\" + widget.Name + ".cshtml")
</blockquote>
}
它停止工作,并发出错误信息,找不到视图,并显示消息:
[InvalidOperationException:部分视图'D:\ Clock.cshtml'不是 找到或没有视图引擎支持搜索的位置。下列 搜索地点: 〜/查看/窗口小部件/ d:\ Clock.cshtml.aspx 〜/查看/窗口小部件/ d:\ Clock.cshtml.ascx 〜/查看/共享/ d:\ Clock.cshtml.aspx 〜/查看/共享/ d:\ Clock.cshtml.ascx 〜/查看/窗口小部件/ d:\ Clock.cshtml.cshtml 〜/查看/窗口小部件/ d:\ Clock.cshtml.vbhtml 〜/查看/共享/ d:\ Clock.cshtml.cshtml 〜/查看/共享/ d:\ Clock.cshtml.vbhtml]
显然,它仍然试图在项目的相对路径上找到文件。
有没有办法强制它只使用完整路径?
答案 0 :(得分:1)
您是否尝试过指定相对路径?
例如。
@Html.Partial("../MyViews/_PartialView", Model)
?
还建议使用@Html.RenderPartial
,因为它可以更快地运行。