2011-10-11 1000 views
6

大家好,我正在使用MVC 3(Razor)。我有以下问题:如何使用Html.Partial()方法以显式路径渲染局部视图

我有一些共同的内容分隔成部分视图。但不是把它放在默认位置(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只考虑参数作为视图名称,它完全忽略任何路径信息。

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

+1

这里是同样的问题 [http://stackoverflow.com/questions/7640790/how-does-renderpartial-figure-out-where-to-find-a-view/7641165#7641165] [ 1] [1]:http://stackoverflow.com/questions/7640790/how-does-renderpartial-figure-out-where-to-find-a-view/7641165#7641165 – zdrsh

回答

16

您需要使用应用程序虚拟路径(在路径的开始注意到~\)参考:

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

谢谢!它的作品!! ~~ – NextStep

1

如果您还配置了行动回报是局部视图,你也可以这样做:

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

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