View()与PartialView()

bur*_*1ce 33 asp.net-mvc

View()方法可以加载部分视图.

之间的差别View(),并PartialView()View()可以加载视图和局部视图,并PartialView()只能装载部分的看法?

Eil*_*lon 37

由视图引擎决定是否要处理与常规视图不同的部分视图.

例如,在WebFormViewEngine中没有区别.

在新的ASP.NET MVC 3 RazorViewEngine中存在一些差异.只有常规视图才会运行"_viewstart.cshtml"页面,因为它们用于设置布局页面等内容.


fab*_*tto 23

我认为最大的区别在于_Layout页面的使用:

  • PartialView():剃刀引擎将获得视图(例如index.cshtml),没有任何布局页面(_layout.cshtml).
  • View():引擎将获取您的视图(例如index.cshtml),然后在布局页面中附加此视图的内容(_layout.cshtml)

  • +1 因为这真的是 IMO 最重要的事实!尝试以这种方式使用例如`@Html.Action("SideMenu", "Menu")`:`public ActionResult SideMenu() { return View(); }`。你会想知道为什么它用 `RenderBody()` 渲染到 `_Layout` 中。改为返回`PartialView()`,因为它不是通过`RenderBody()` 渲染到`_Layout`。 (4认同)