Html.Partial方法:是将视图内容直接生成一个字符串并返回,
Html.RenderPartial方法是直接输出至当前HttpContext,
而Html.RenderAction还调用一下Action。重新执行一次Controller → Model → View的顺序。
因此它们在视图中的使用方式是不同的。
Html.RenderPartial与Html.RenderAction 这个两个方法都是用于把MVC用户控件嵌入到View中。
Html.RenderPartial是直接将MVC用户控件嵌入到界面上
<%Html.RenderPartial("SupplierList ");%>
注意: MVC用户控件必须放在调用者同一目录下,也可以放在View/Shared中。
<%Html.RenderPartial("~/Views/ Supplier/SupplierList.ascx");%>
指明MVC用户控件所放的具体目录。
Html.RenderAction是通过Controller中的Action来调用MVC用户控件
在MVC 2.0中,新增加了Html.RenderAction();这个方法RenderPartial有点不一样,他是直接重新执行一次Controller → Model → View的顺序,然后把产生的页面带回到原来的View中再回传。
所以Html.RenderAction中传递的参数是执行的Controller和Action名称。若是在控制器中的某个方法只能让Html.RenderAction()调用时,可以在方法上添加特性[ChildActionOnly],其它的地方无法访问。
public class ChildActionOnlyTestController : Controller { [ChildActionOnly] public ActionResult GetSupplierList() { var controller = new SupplierController(); return controller.SupplierList(); } }
两者的相同点
RenderPartial和RenderAction通常都被用来显示一个功能相对独立的“块”,比如说显示菜单或者导航条。 两者输出的结果都被作为调用的View的一部分显示。
两者的不同点
1.RenderPatial的数据来自于调用的View,而RenderAction来自自己。
2.RenderAction会发起一个新的Request,而RenderPatial不会。
如何选择
根据两者不同点中的第二点,由于RenderAction会调用一个新的Action方法,而Asp.net Mvc中Action是最小的缓存单位,因此如果某一个“块”的数据比较固定,不会因为访问者的不同而发生变化,那么这时就是使用 RenderAction的时候了。 题外话,对于RenderAction会发起一个新的Request,感觉对调用页面的流程有点破坏。一个View在显示的时候,自己又发起一个 Request去获取数据来显示,显然有点破坏了作为一个View的原则:
相关推荐
### ASP.NET MVC中Html.Partial, RenderPartial, Action, RenderAction 的区别与用法 #### Html.Partial 和 RenderPartial 1. **Html.Partial** - **定义**:`Html.Partial` 方法用于将一个部分视图(partial ...
在C#的ASP.NET MVC框架中,`Html.RenderPartial`和`Html.RenderAction`都是用于在视图(View)中嵌入部分视图(Partial View)的辅助方法,以实现界面的模块化和代码重用。然而,它们之间存在一些重要的区别,这决定...
ASP.NET MVC 中的视图生成过程可以分为三个独立的部分:Controller、View 和 Model。Controller 负责控制用户的操作,View 负责控制呈现的内容,Model 负责表示处理的数据。 在 Controller 中,我们定义多个 Action...
"ASP.NET MVC中HtmlHelper控件7个大类中各个控件使用详解" ASP.NET MVC框架中,HtmlHelper控件是非常重要的组件之一,它提供了一系列的扩展方法来生成HTML元素。HtmlHelper控件可以分为7个大类,每个类别都拥有其...
在 ASP.NET MVC 开发过程中,`HtmlHelper` 类提供了丰富的辅助方法来简化 HTML 元素的生成过程,提高开发效率并确保代码的一致性与正确性。本文将详细介绍 `HtmlHelper` 类中的常用方法及其应用场景。 #### 二、...
关于何时使用`RenderAction`和`RenderPartial`,一般原则是:如果你需要在视图中展示的数据是通过额外的动作方法计算或获取的,且这个数据与当前视图的数据无关,那么应该使用`RenderAction`。相反,如果只是简单地...
在ASP.NET MVC框架中,页面间的参数传递是一个常见的需求,主要目的是为了在不同的视图间共享数据。本文将重点讨论两种方法:Html.RenderAction和Html.RenderPartial,以及它们在传递参数时的区别。 **一、...
对于ASP.NET MVC应用,可以利用`HtmlHelper`的`RenderAction`或`RenderPartial`方法来渲染视图,并保存为静态HTML。这种方法适合于MVC架构的项目。 ### 5. 使用缓存技术 利用ASP.NET的Output Cache特性,可以在用户...