乡下人重拾MVC——@RenderBody @RenderSection @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction
1. @RenderBody()
代表:是一个占位符,是留给子页面的位置,子页面使用这个模版,子页面中的内容会被放到@RenderBody的位置。合并后当作一个整体加载
2. @RenderSection(string,boolean)
第一个参数是string类型,标明名称;第二个参数是boolean类型,表示子页面是否必须要写它。
代表:是个占位符,解决了只有一个RenderBody的问题。比如,子页面要引入自己css文件,而@RenderBody写在了模板的<body>的最下面,而css想要加到模板的<head>中,这时候只需要在模板的head中加入 @RenderSection("css",false) 在子页面上加入 : @section css{ //是引用的css }
也可以这样:
//先判断目标页中是否要加载这些片段,再加载
@if(IsSectionDefined("css")) //该值指示是否在页中定义了指定部分
{
@RenderSection("css") //将呈现指定部分的内容
}
3. @Html.Partial()
返回值类型为MvcHtmlString,是一个字符串;
直接加载视图文件内容;
可以直接提供用户控件名作为参数;
简单的没有任何逻辑的用户控件,推荐使用Partial;
以HTML-encoded 字符串展示
结果以HTML-encoded 字符串展示
返回的是string类型,所以结果可以存储在变量里
使用简单,无需创建Action
格式如:@Html.Partial("_Comments")
4. @Html.Action()
返回值类型为MvcHtmlString,是一个字符串;
重新执行一次Controller→Model→View的顺序,然后把产生的页面带回到原来的View中再回传;
需要有对应的Action,在Action内部返回PartialResult(即return PartialView());
对于需要设置一些Model的用户控件,推荐使用Action;
在return PartialView时可以根据不同的场景选择不同的用户控件;
直接展示为HtmlString
需要创建对应的child action
可以缓存partial view
格式如:@{Html.Action("Category","Home");}
5. @Html.RenderPartial()
返回值是void,在方法内部进行输出;
直接加载视图文件内容;
可以直接提供用户控件名作为参数;
简单的没有任何逻辑的用户控件,推荐使用Partial;
将分部视图直接写入响应输出流,所以只能放在代码模块中,不能放在表达式中。
这个方法会直接将结果写入到当前请求的http response数据流中,这以为着它使用了和当前webpage/template使用的相同的TextWrite对象
方法没有返回值
不需要创建action,使用简单
格式如下:@{Html.RenderPartial("Links")};"Links"就是分部视图页的名称
这个方法比Partial方法更快,因为它直接将结果系统到当前响应的数据流中
6. @Html.RenderAction()
返回值是void,在方法内部进行输出;
重新执行一次Controller→Model→View的顺序,然后把产生的页面带回到原来的View中再回传;
需要有对应的Action,在Action内部返回PartialResult(即return PartialView());
对于需要设置一些Model的用户控件,推荐使用Action;
将分部视图直接写入响应输出流。 ;
和上个一样,执行结果会直接写入当前响应的数据流中
需要创建child action方法
格式如:@{Html.RenderAction("Category","Home");}
如果你想缓存partial view,这是最好的选择
这个方法比Action()方法快,基于第一条原因
乡下人重拾MVC——@RenderBody @RenderSection @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction的更多相关文章
- asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别
转载自 : <asp.net mvc @Html.Partial @Html.Action @Html.RenderPartial @Html.RenderAction区别> 先复制过来 ...
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
ASP.NET MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别 对这四个的区别做一个总结,清理一下思路 ...
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别 .(转)
mvc renderaction renderpartial 杂谈 Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的. ...
- asp.net MVC3.0 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
asp.net MVC3.0 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction 1.带有Render的方法返回值是v ...
- MVC中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
Html.RenderPartial与Html.RenderAction这两个方法都是用来在界面上嵌入用户控件的. 1. Html.RenderPartial是直接将用户控件嵌入到界面上: <% ...
- asp.net MVC 中@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction区别
@Html.Action:需要有对应的Action,并且Action方法有返回值.(注:处理完业务逻辑同时,也需要返回所需值) @{Html.RenderAction}:需要有对应的Action,Ac ...
- 关于asp.net MVC3 ----@Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction
1.带有Render的方法返回值是void,在方法内部进行输出:不带的返回值类型为MvcHtmlString,所以只能这样使用:@Html.Partial 对应 @{Html.RenderPartia ...
- @Html.Partial,@Html.Action,@Html.RenderPartial,@Html.RenderAction [转]
@Html.Action:需要有对应的Action,并且Action方法有返回值.(注:处理完业务逻辑同时,也需要返回所需值) @{Html.RenderAction}:需要有对应的Action,Ac ...
- 乡下人重拾MVC——创建视图
1. 创建视图都不勾选:代表不使用任何模版,页面的代码即为运行后显示的内容 2. 创建分部视图 代表统会自动把View文件夹下名为“_ViewStart.cshtml”的内容添加到新建的html最上 ...
随机推荐
- 第9章 使用客户端凭据保护API - Identity Server 4 中文文档(v1.0.0)
快速入门介绍了使用IdentityServer保护API的最基本方案. 我们将定义一个API和一个想要访问它的客户端. 客户端将通过提供ClientCredentials在IdentityServer ...
- iptables配置管理
iptables规则 内核netfilter的规则: iptables的规则: 基本操作 实践:往iptables中插入一条规则:禁止基于端口号为22的所有客户端访问(等于是禁止基于SSH的客户端连接 ...
- Thrift 入门教程
1. 概述 thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发.它结合了功能强大的软件堆栈和代码生成引擎,以构建在 C++, Java, Go,Python, PHP, Ruby, Erl ...
- 【AO笔记】有关TIN数据集的常用介绍
写论文查了很多TIN的接口和属性,特此来记录一下. 转载请注明出处:博客园@秋意正寒,B站同名. 未完待续 1. Tin数据集在ArcGIS中的描述 Tin数据集在磁盘中,被ArcGIS以文件夹形式管 ...
- git第一次提交代码到码云
转载请标明出处:https://www.cnblogs.com/tangZH/p/10229598.html 不说废话,来看重点. 1.首先注册码云账号,然后建立仓库,这些就直接跳过,很简单. 2.下 ...
- AlwaysOn配置时在连接步骤时报错(35250)
1.错误描述 1XX.XXX.XXX.241(主节点) 1XX.XXX.XXX.242(从节点) 添加节点需要在主节点上执行的,错误代码:35250 报错截图 2.网上相关介绍都是怀疑端口5022的问 ...
- Hasse神舟笔记本卡logo解决,刷BIOS方法,教你修复神船
我的电脑是神舟战神K660E i7 d7的,前两天装Windows10,Ubuntu,MAC OS Mojave,PE 一堆操作,使用bootice重建uefi引导,结果在前几天,我删了一个重复的ue ...
- SQLServer之修改标量值函数
修改标量值函数注意事项 更改先前通过执行 CREATE FUNCTION 语句创建的现有 Transact-SQL 或 CLR 函数,但不更改权限,也不影响任何相关的函数.存储过程或触发器. 不能用 ...
- 【原】Java学习笔记012 - 数组
package cn.temptation; public class Sample01 { public static void main(String[] args) { // 需求:小店对自己的 ...
- jQuery如何制作动画
下面为一组图片(四张)展示 1 2 3 4 页面代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN& ...