asp.net mvc 部分视图加载区别

版权声明:本文为博主原创文章,未经博主允许不得转载。
【部分视图】
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 mvc 部分视图加载区别的更多相关文章
- asp.net mvc 无刷新加载
1.视图(index) <!--start--> <div data-am-widget="list_news" class="am-list-news ...
- ASP.NET MVC 4 异步加载控制器
ASP.NET 4 Developer preview中的异步操纵器 在放弃了对.NET 3的支持之后, ASP.NET MVC 4 彻底拥抱了Task类库, 你不需求再蛋疼的给每个Action写两个 ...
- ASP.NET MVC ScriptBundle 不能加载.min.js文件
比如我用 bundles.Add(new ScriptBundle("~/bundles/easyui").Include( "~/Content/easyui/jque ...
- ASP.NET MVC 5 - 视图
在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成HTML. 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所 ...
- [转]ASP.NET MVC 5 - 视图
在本节中,你要去修改HelloWorldController类,使用视图模板文件,在干净利索地封装的过程中:客户端浏览器生成HTML. 您将创建一个视图模板文件,其中使用了ASP.NET MVC 3所 ...
- 关于asp.net中页面事件加载的先后顺序
一.ASP.NET 母版页和内容页中的事件 母版页和内容页都可以包含控件的事件处理程序.对于控件而言,事件是在本地处理的,即内容页中的控件在内容页中引发事件,母版页中的控件在母版页中引发事件.控件事件 ...
- iOS学习之视图加载过程中会触发的方法(loadView/viewDidLoad/didReceiveMemoryWarning)
1.loadView 这是视图控制器用来加载根视图的方法; 如果需要将自定义的视图作为根视图,则不需要调用父类对该方法的实现([super loadView]);直接将自定义视图通过self.view ...
- [Swift通天遁地]一、超级工具-(5)使用UIWebView(网页视图)加载本地页面并调用JavaScript(脚本)代码
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- [Swift通天遁地]一、超级工具-(4)使用UIWebView(网页视图)加载HTML和Gif动画
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
随机推荐
- jQuery 学习之路(2):选择器与过滤器
一.基本选择器 标签选择器: $('button') ID选择器: $('#id1') 类选择器: $('.class1') 多重选择器: $('#id1,.class1,button') 全体选择器 ...
- matplotlib basic and boxplot
============================================matplotlib 绘图基础========================================= ...
- 怎样用Lodrunner测试WAP站点的性能(两种解决方案)
其实用IE就可以的!!!! 1.借助opera实现对WAP站点的录制 第一:安装opera软件 第二:Lodrunner选择Web(HTTP/HTML)协议 第三:Lodrunner的Applicat ...
- PHP Socket实现websocket(三)Stream函数
除了socket函数也可以使用stream函数来实现服务器与客户端. 参考PHP 的Stream实现服务器客户端模型: http://php.net/manual/en/book.stream.php ...
- JS数组的基本用法
JS数组的用法包括创建.取值赋值.添加以及根据下标(包括数值或字符)来移除元素等等,在本文中将为大家详细介绍,感兴趣的朋友可以参考下. 1.创建数组: //1.1直接创建一个数组对象 var arra ...
- ORACLE 数据库建了非法表后无法操作和删除问题
问题描述: oracle 用PL/SQL DEVELOPER 可视化建表时,表名没有按照规范,建立一个非法格式的表 ICD-10th-Version (中间有横杆,非法).但是不知道怎么回事却建成功了 ...
- osx xcode 创建python项目
http://stackoverflow.com/questions/5276967/python-in-xcode-7
- [codeforces 360]A. Levko and Array Recovery
[codeforces 360]A. Levko and Array Recovery 试题描述 Levko loves array a1, a2, ... , an, consisting of i ...
- hiho #1361 Playfair密码表
题目1 : Playfair密码表 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Hi和小Ho经常用Playfair密码表加密自己的代码. 密码表是按以下步骤生成的. ...
- __get().__set.__isset,__unset魔术方法
一般来说,总是把类的属性定义为 private .这更符合现实的逻辑. 但是对属性的读取和赋值操作非常频繁的,因此在PHP中,预定义了两魔术方法 "__get()"用来获取私有成员属性值的,只有一个参 ...