Html.RenderPartial与Html.RenderAction 这个两个方法都是用于把MVC用户控件嵌入到View中。
Html.RenderPartial是直接将MVC用户控件嵌入到界面上
1 @{Html.RenderPartial("SupplierList ");}
而 Html.RenderAction是通过Controller中的Action来调用MVC用户控件
在MVC 2.0中,新增加了Html.RenderAction();这个方法RenderPartial有点不一样,他是直接重新执行一次Controller → Model → View的顺序,然后把产生的页面带回到原来的View中再回传。
所以Html.RenderAction中传递的参数是执行的Controller和Action名称。若是在控制器中的某个方法只能让Html.RenderAction()调用时,可以在方法上添加特性[ChildActionOnly],其它的地方无法访问。
c# 代码
1 /文章菜单列表 2 [ChildActionOnly] 3 public ActionResult ArticleMenu() 4 { 5 var item = _db.Classes.ToList(); 6 return PartialView(item); 7 }
或者自定义
1 [ChildActionOnly] 2 public ActionResult DropDownListModels() 3 { 4 Response.Cache.SetOmitVaryStar(true); 5 return PartialView("_GetModelsList", null); 6 }
前端调用
<div>@{Html.RenderAction("DropDownListModels", "PcMain");}</div>
其中的“DropDownListModels”为控制器中的方法,“PcMain”为控制器的名称