在asp.net MVC3中调用局部视图

Dot*_*row 6 asp.net-mvc asp.net-mvc-3

有什么区别Html.PartialHtml.action使用在asp.net MVC3的局部视图的背景?

Lin*_*ron 10

Html.Action将调用一个控制器Action,因此它将再次通过整个MVC管道(在服务器内部)找到一个将返回ViewResult的控制器(尽管理论上你也可以返回一个JsonResult或其他东西).

Html.Partial只会返回一个PartialPage(如在CSHTML文件中),并且不会通过整个管道.它只会使用视图引擎进行搜索.

Action的一些优点是具有身份验证,缓存和其他在MVC管道中发生的事情,而Partial更快(尽管如果您需要传递ViewModel等,您可能在部分页面中承担更多责任)

关于RenderAction与RenderPartial的优点/缺点,这是一篇不错的帖子(有点旧)


Dar*_*rov 4

Html.Partial直接包含您调用助手的位置的视图。它就像一个文件包含。

Html.Action首先调用可以呈现视图的控制器操作,并且包含该操作的结果。由于调用控制器操作,需要实例化控制器,因此整个 MVC 管道作为子请求执行。

您可以看看下面的博文