每个人,我都在使用MVC 3(Razor)。我有以下问题:
我有一些共同的内容被分隔成局部视图。但不是将其放在默认位置(views/shared
或views/controller-name
),而是将其放在不同的位置(views/shared/new-folder
或view/controller-name/new-folder
)。
我试过这个:@Html.Partial("views/shared/new-folder/partial-view-name")
甚至@Html.Partial("views/shared/new-folder/partial-view-name.cshtml")
,但似乎MVC3只将参数视为视图名称,并且它完全忽略了任何路径信息。
也许我做错了什么,有人可以帮我吗?:)非常感谢你!
答案 0 :(得分:16)
您需要使用应用程序虚拟路径进行引用(注意路径开头的~\
):
@Html.Partial("~\\views\\shared\\new-folder\\partial-view-name.cshtml")
答案 1 :(得分:1)
如果您还配置了一个操作以返回该部分视图,您也可以执行以下操作:
@{ Html.RenderAction("PartialViewAction", "PartialViewCOntroller");}
这可能更好,因为您不应该在代码中对视图的引用进行硬编码。在不同的服务器上部署硬编码引用可能会破坏应用程序,但调用返回视图的操作则不会。