Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
来源:互联网 发布:动漫素描教程软件 编辑:程序博客网 时间:2024/04/28 03:55
Partial 和RenderPartial:
这两个的性质都是一样, 只指把一个个View给镶入进来, 只是回传值有点不一样
Partial 回传的一个Object (MvcHtmlString), 回传一个String 把一堆Html给回传出来, 然后写进到主页面上
@Html.Partial("ViewName")
RenderPartial 回传的是void, 而这个方法会在主页面上添加指定的View
@{
Html.RenderPartial("ViewName");
}
这两个方法没有用到Controller, 是直接把一个View(Page) 给加进来
而RenderAction 有点不一样, 这是一个Action, 所以会用到Controller 之后再回传一个页面
public class ChildActionOnlyTestController : Controller
{
[ChildActionOnly]
public ActionResult GetSupplierList()
{
var controller = new SupplierController();
return controller.SupplierList();
}
}
RenderPartial和RenderAction两者的相同点
通常都被用来显示一个功能相对独立的“块”,比如说显示菜单或者导航条。 两者输出的结果都被作为调用的View的一部分显示。
两者的不同点
- RenderPatial的数据来自于调用的View,而RenderAction来自自己。
- RenderAction会发起一个新的Request,而RenderPatial不会。
@Html.Partial/@{Htmt.RenderPartial()}
@Html.Partial用于将分部视图渲染为字符串
@{Html.RenderPartial}将分布视图直接写入响应输出流,所以只能直接放在代码块中,不能放在表达式中(返回值是void)
RenderPartial因为是直接写在响应流中,所以性能会更好(微量影响),而Partial不用写在代码块中,所以更方便
@Html.Action()/@Html.RenderAction()
和Partial与RenderPartial类似,但是因为会通过Action,所以更灵活,可以利用控制器上下文。
在Action中可以通过IsChildAction来判断是被Url直接调用还是被Action()/RenderAction()调用
可以利用重载直接参数给Action。
RenderAction优先使用ActionNameAttribute。
Action中使用return PartialView()指定分部视图,在_ViewStatrt.cshtml中指定的Layout会无效。
4种PartialView对比:
PartialView:<div>Just a PartialView Test!@ViewBag.Test</div>@ViewBag.Test
View:<p> @{Html.RenderPartial("ViewUserControl1");} @Html.Partial("ViewUserControl1") @{Html.RenderAction("ViewUserControl1");} @Html.Action("ViewUserControl1")</p>
Controller:Controller:[ChildActionOnly]//防止直接调用public ActionResult ViewUserControl1(){ ViewBag.Test = "(Action)调用"; return PartialView();}
效果:
标签: asp.net MVC
0 0
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- asp.net MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- 【ASP.NET】 MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- MVC Html.Partial RenderPartial Action RenderAction 区别
- ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction差别
- MVC中Html.Partial, RenderPartial, Action,RenderAction 区别
- mvc HTMl.Partial,Action,RenderPartial,RenderAction区别与传参
- MVC 中Html.RenderPartial与Html.RenderAction 和 Html.Partial 区别{转}
- MVC 中Html.RenderPartial与Html.RenderAction 和 Html.Partial 区别
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
- 关于asp.net MVC3 ----@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
- 黑马程序员——java单例设计模式
- Android selector用法
- 分析函数
- core标签库
- 选夫婿2(SDUT 1595)
- Asp.net MVC中Html.Partial, RenderPartial, Action,RenderAction 区别和用法
- 自动 更新SVN目录文件.bat
- 浅析Android中的消息机制
- 【转】Oracle内连接、外连接、右外连接、全外连接小总结
- 黑马程序员_交通等管理系统
- Linux操作系统访问
- SQLServer线程与纤维
- LaTeX Subfigure 中间添加垂直线
- 简单枚举类型——植物与颜色 (SDUT 1959)