【转】Html.RenderPartial与 Html.RenderAction的区别
HTML 区别
2023-09-11 14:19:21 时间
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(); } }
以下是执行过程比较图
一个示例:
Controller:
//文章菜单列表 [ChildActionOnly] public ActionResult ArticleMenu() { var item = _db.Classes.ToList(); return PartialView(item); }
View:Articlemenu.cshtml
@model IEnumerable<Class> @foreach (var item in Model) { @Html.ActionLink(item.ClassName,item.ActionName, "Article", null, new { @class = "tree_children", @target = "MainFrame" }) }
Add View:Index.cshtml
@{Html.RenderAction("ArticleMenu", "Article");}
第二个示例:
Controller: 注意PartialView里加载的是部分视图并不是model
[ChildActionOnly] public ActionResult CartSummary() { var cart = ShoppingCart.GetCart(this.HttpContext); ViewData["CartCount"] = cart.GetCount(); return PartialView("CartSummary"); }
PartiaView:CartSummary.cshtml
@Html.ActionLink("Cart (" + ViewData["CartCount"] + ")", "Index", "ShoppingCart", new { id = "cart-status" })
Add View:
@{Html.RenderAction("GenreMenu", "Store");}
相关文章
- <转载>C#与JAVA的区别 http://www.cnblogs.com/Asa-Zhu/archive/2012/11/08/2761114.html
- html基础
- html中一些文字标签
- htm、html、shtml网页区别
- 前端学习 -- Html&Css -- ie6 png 背景问题
- 58同城html字体反爬
- jquery html操作CURD
- 126、android html唤醒APP(转载)
- [AngularJS] Hijacking Existing HTML Attributes with Angular Directives
- MFC Windows 程序设计[八十二]之html页面嵌套(附源码)
- HTML meta refresh 刷新与跳转(重定向)页面
- Html和xhtml有什么区别?
- HTML里Dom onload和jQuery document ready这两个事件的区别
- SAP云平台里Run index.html和Run as SAP Fiori Launchpad的区别
- html、vue、uni-app微信小程序的区别
- Winnovative HTML to PDF Converter
- 两个html中div的复用 如何在HTML不同的页面中,共用头部与尾部?iframe标签
- 〖大前端 - 基础入门三大核心之 html 篇⑧〗- 无序列表
- text/html和text/plain的区别
- HTML与XHTML差额
- http://bsideup.blogspot.com/2015/04/spring-boot-thrift-part3.html
- Html中,id、name、class、type的区别
- Html就是超文本标记语言的简写,是最基础的网页语言
- HTML中如何给HTML元素添加事件