asp.net mvc 部分视图加载区别
2016-06-29 16:49
507 查看
ASP.NET MVC 部分视图
ASP.NET(11)版权声明:本文为博主原创文章,未经博主允许不得转载。
【部分视图】
ASP.NET MVC 里的部分视图,相当于 Web Form 里的 User Control。我们的页面往往会有许多重用的地方,可以进行封装重用。使用 部分视图 : 1. 可以简写代码。2. 页面代码更加清晰、更好维护。
【如何使用】
在视图里有多种方法可以 加载部分视图,包括:
Partial() Action() RenderPartial() RenderAction() RenderPage() 方法。
以下是这些方法的差别:
Partial 与 RenderPartial 方法
1. Razor 语法:@Html.Partial() 与 @{Html.RenderPartial();}
2. 区别:Partial 可以直接输出内容,它内部是 将 html 内容转换为 string 字符(MVCHtmlString),然后缓存起来, 最后在一次性输出到页面。显然,这个转换的过程,会降低效率,所以通常使用 RenderPartial 代替。
RenderPartial 与 RenderAction 方法
1. Razor 语法:@{Html.RenderPartial();} 与 @{Html.RenderAction();}
2. 区别:RenderPartial 不需要创建 Controller 的 Action ,而 RenderAction 需要在 Controller 创建要加载的 Action。
RenderAction 会先去调用 Contorller 的 Action ,最后再 呈现视图,所以这里 页面会在 发起一个链接。
如果这个部分视图只是一些简单 的 html 代码,请使用 RenderPartial。 但如果这个部分视图 除了有 html 代码外, 还需要 通过 读取数据库里的数据 来渲染,就必须使用 RenderAction 了,因为 它可以在 Action 里调用 Model里的 方法读取数据库,渲染视图后在呈现,而 RenderPartial 没有 Action,所以无法做到。
RenderAction 与 Action
1. Razor 语法:@{Html.RenderAction();} 与 @Html.Action();
2. 区别:Action 也是直接输出,和 Partial 一样,也存在一个转换的过程。不如 RenderAction 直接输出到 当前
HttpContext 的效率高。
RenderPage 与 RenderPartial 方法
1. Razor 语法:@{Html.RenderPartial();} 与 @RenderPage()
2. 区别:也可以使用 RenderPage 来呈现部分,但它不能使用 原来视图的 Model 和 ViewData ,只能通过参数来传 递。而 RenderPartial 可以使用原来视图的 Model 和 ViewData。
【总结】
ASP.NET MVC 引入的 部分视图(Partial View)和 布局 (Layout)其实都不是新的概念,相当于是 Web Form 里的User Control 和 Master Page 。原理是一样的,只是 实现技术有一点差别。
顶4踩
相关文章推荐
- ASP.NET Web API 接口执行时间监控
- 控制ASP.NET Web API 调用频率
- asp js获取服务器控件的简单方法
- Asp.Net MVC 模型(使用Entity Framework创建模型类)
- ASP.NET MVC 域名泛解析设置
- spring AspectJ的Execution表达式
- 七天学会ASP.NET MVC (三)——ASP.Net MVC 数据处理
- [ASP.NET]利用DataTable对DropDownList进行数据绑定
- casperjs 安装
- Asp.Net处理URL空格变%20问题
- c#/asp.net 对一个内容字符串提取字符串的图片,并且转换为UBB
- ASP.NET MVC企业级实战目录
- ASPNET树形级联
- 开源Asp.Net Core小型社区系统
- asp.net服务器控件的生命周期
- GRASP----(职责分配原则)
- asp.net mvc中应用Grid++ Report (基本应用示例)
- Infragistics.NetAdvantage.Ultimate.2011 ASP.NET Product Changes
- ASP.NET MVC 静态资源打包和压缩问题小记
- 如何做一个基于ASP.NET MVC 网站(二)