在asp.net MVC3中使用局部视图的上下文中Html.Partial
和Html.action
有什么区别?
答案 0 :(得分:10)
Html.Action将调用一个控制器Action,所以它将再次通过整个MVC管道(在服务器内部)找到一个将返回一个ViewResult的控制器(虽然,理论上你也可以返回一个JsonResult或者什么东西否则)。
Html.Partial只会返回一个PartialPage(如在CSHTML文件中),并且不会通过整个管道。它只会使用视图引擎进行搜索。
Action的一些优点是具有身份验证,缓存和其他在MVC管道中发生的事情,而Partial更快(尽管如果您需要传递ViewModel等,您可能在部分页面中承担更多责任。)
的优点/缺点,这是一篇不错的帖子(有点旧)答案 1 :(得分:4)
Html.Partial
直接包含您调用帮助程序的位置的视图。它就像一个文件包含。
Html.Action
首先调用控制器操作,该操作可以呈现视图,它是包含此操作的结果。并且因为调用了控制器动作,所以需要实例化控制器,因此整个MVC管道作为子请求执行。
您可以查看following blog post。
答案 2 :(得分:2)