mvc3 - 在不同区域使用部分视图

MoX*_*lod 22 razor asp.net-mvc-3-areas asp.net-mvc-3

关于部分观点,我有两个问题......

  1. 何时使用部分视图与@helper方法,我已经互换使用,并希望在使用中更加一致.你们做什么的?

  2. 如何从其他区域引用局部视图.

我有一个名为admin的区域,我在常规的Views目录中有一个局部视图.我如何使用它..我尝试了以下不能工作,因为它无法找到.

@Html.Partial(VirtualPathUtility.ToAbsolute("~/Views/ControllerName/_PartialView"),
 Model)
Run Code Online (Sandbox Code Playgroud)

其他我试过 -

@Html.Partial("~/Views/ControllerName/_PartialView", Model)
Run Code Online (Sandbox Code Playgroud)

Eri*_*sch 36

当你说"帮助者"时,我不确定你是说Html助手还是剃须助手.无论如何,我只会创建一个Html助手,当它是一个像控件一样的小型个人项目时.

如果你的意思是Razor助手,那么它们与Partials的不同之处在于你可以像函数一样调用它们,传递你想要的任何参数.部分内容主要是"模型"系统(当然还有Temp/ViewData/Bag).

这完全取决于您希望如何使用代码.

至于你的偏见.您必须包含后缀.

@Html.Partial("~/Views/ControllerName/_PartialView.cshtml", Model)
Run Code Online (Sandbox Code Playgroud)

  • 甜蜜的后缀是我错过的! (2认同)

Sim*_*ver 29

由于提问者询问了这里的区域如何在一个区域内进行

 @Html.Partial("~/Areas/Store/Views/Pages/Checkout.cshtml")
Run Code Online (Sandbox Code Playgroud)

  • 在同一区域内,如果您使用标准目录结构,"PrivacyPolicy.cshtml"将起作用,因为MVC将搜索预期的目录结构.相对路径不应该起作用AFAIK,可能导致由于MVC搜索路径的动态方式而不清楚它是什么.即它会开始扎根于Area,或Area/Views /或/ Area/Views/ControllerName /?所以它只是用于预期目录结构中的某些文件名,或者是来自应用程序根目录的完整路径,例如在您的答案中. (2认同)