如何使用Html.Partial()方法使用显式路径呈现局部视图

时间:2011-10-11 00:55:15

标签: asp.net-mvc-3 partial-views

每个人,我都在使用MVC 3(Razor)。我有以下问题:

我有一些共同的内容被分隔成局部视图。但不是将其放在默认位置(views/sharedviews/controller-name),而是将其放在不同的位置(views/shared/new-folderview/controller-name/new-folder)。

我试过这个:@Html.Partial("views/shared/new-folder/partial-view-name")甚至@Html.Partial("views/shared/new-folder/partial-view-name.cshtml"),但似乎MVC3只将参数视为视图名称,并且它完全忽略了任何路径信息。

也许我做错了什么,有人可以帮我吗?:)非常感谢你!

2 个答案:

答案 0 :(得分:16)

您需要使用应用程序虚拟路径进行引用(注意路径开头的~\):

@Html.Partial("~\\views\\shared\\new-folder\\partial-view-name.cshtml")

答案 1 :(得分:1)

如果您还配置了一个操作以返回该部分视图,您也可以执行以下操作:

@{ Html.RenderAction("PartialViewAction", "PartialViewCOntroller");}

这可能更好,因为您不应该在代码中对视图的引用进行硬编码。在不同的服务器上部署硬编码引用可能会破坏应用程序,但调用返回视图的操作则不会。