MVC @RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、@Html.RenderAction
1、@RenderBody()
作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间。
这个方法不需要参数,而且只能出现一次。
2、@RenderPage
从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:
@RenderPage(“~/Views/Shared/_Header.cshtml”)
带参数
@RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you")
调用页面获取参数:
//获取 RenderPage() 传递过来的参数
@PageData["param"]
3、 @RenderSection
布局页面还有节(Section)的概念,也就是说,如果某个视图模板中定义了一个节,那么可以把它单独呈现出来,用法如下:
@RenderPage(“~/Views/Shared/_Header.cshtml”)
@RenderBody() //模板里添加了一个节
@RenderSection(“head”)
当然还要在视图中定义节,否则会出现异常:
@section head{
//do
}
为了防止因缺少节而出现异常,可以给RenderSection()提供第2个参数:
@RenderSection("SubMenu", false)
或
@if (IsSectionDefined("SubMenu"))
{
@RenderSection("SubMenu", false)
}
else
{
<p>SubMenu Section is not defined!</p>
}
4、@Html.Partial
Partial 每次都会创建自己的 TextWriter 实例并且把内容缓存在内存中. 最后把所有 writer输出的内容发送到一个 MvcString对象中
更多时候我们会使用 @{ Html.RenderPartial("Details"); } 而不是@Html.Partial
RenderPage()和RenderPartial()的区别
RenderPage()调用的页面只能使用其传递过去的数据。
而RenderPartial()是可以使用viewdata,model等数据的。
Html.RenderPartial和Html.RenderAction的区别
Html.RenderPartial适合用在重覆使用的UserControl,并且只需要透过Model来呈现内容,或是对于广告的UserControl也适合使用。 Html.RenderAction则会先去呼叫Controller的Action方法,如果此UserControl是需要透过资料库取得资料来呈现(透过Action来读取资料库),此时会比较适合使用此方式。
5、@Html.Partial("MyView") VS @Html.RenderPartial 区别
共同点:两者都可以输出一个Partial视图
区别:
5.1、 Partial有返回值(MvcHtmlString);RenderPartial没有返回值(Void)。
5.2、两种写法不一样需注意
5.3、Partial是将视图内容直接生成一个字符串并返回,RenderPartial方法是直接输出至当前HttpContext。因此它们在视图中的使用方式是不同的,
@{ Html.RenderPartial("_NavMenu"); }@Html.Partial("_NavMenu");
转载于:https://www.cnblogs.com/PEPE/p/3698820.html
MVC @RenderBody、@RenderSection、@RenderPage、@Html.RenderPartial、@Html.RenderAction相关推荐
- MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction...
一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合 ...
- @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别...
1. RenderBody 在Razor引擎中没有了"母版页",取而代之的是叫做"布局"的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面 ...
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(7.2) 模块管理,模块的添加、修改、删除...
索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做模块管理的 添加.修改.删除 项目准备 我们用的工具是:VS 2013 + SqlSer ...
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(8) 权限管理,自定义权限,扩展权限...
索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做权限的管理,这篇比较多 希望新手朋友慢慢消化 项目准备 我们用的工具是:VS 2013 ...
- 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(5.5) 登录功能的实现,完善登录功能...
索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来完善我们的登录功能 项目准备 我们用的工具是:VS 2013 + SqlServer 20 ...
- C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布
C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows.Liux环境下程序发布 一. MVC含义 二.数据传输 1.控制器向视图传输数据 三.日志组件Log4net ...
- 前端MVC Vue2学习总结(四)——条件渲染、列表渲染、事件处理器
一.条件渲染 1.1.v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}}<h1> ...
- 【网络安全】——服务端安全(注入攻击、认证与会话管理和访问控制、访问控制、加密算法与随机数、Web框架安全、应用层拒绝服务攻击DDOS)
这一篇博客记录的是服务端安全应用安全的知识,学习内容来自<白帽子讲Web安全>. 承接自上一篇客户端安全之后,包括注入攻击.认证与会话管理和访问控制.访问控制.加密算法与随机数.Web ...
- 3、JavaWeb中Service层的作用、MyBatis的重要组件、mybatis-config.xml中的别名映射、properties配置、#{}和${}的区别、获取插入数据的主键值
文章目录 1.Service层的作用 2.MyBatis重要组件 Resources SqlSessionFactoryBuilder SqlSessionFactory SqlSession 针对上 ...
最新文章
- EOS 智能合约源代码解读 (10)token合约“简介”
- C++中#ifndef/#define/#endif使用详解
- VTK:定向圆柱体用法实战
- iOS 调用h5页面 视频不自动播放的问题
- Fastify 2.0.1 和 1.14.3 发布,极速 Node.js Web 框架
- Spring 事务原理和使用
- [html] 如何更改浏览器左上角标题旁的图标?
- 吓坏了!智能锁半夜自己“离奇打开”
- office组件导入导出常见异常记录
- python系列3—顺序结构和分支结构
- 安卓修改软件安装时间_LaTeX软件安装教程
- 【Python】迭代法求解非线性方程及方程组
- 一个女孩写给女孩的话
- 【渝粤教育】电大中专常见病药物治疗_1作业 题库
- Docker疑难杂症汇总
- 疫情放开,新冠防治药推荐,中医治疫病的准则
- 虹科ELPRO - EMS系统实现苏州某医药仓库温湿度自动监测 - 100% GxP合规
- 基于SSM企业生产计划管理系统
- 自动驾驶入门技术(3) —— 毫米波雷达
- 上海市计算机一级考试试题模拟,48-上海市高校计算机等级考试一级 模拟试题...
热门文章
- php同学录网站设计_基于PHP的校友录系统的设计与实现
- python开源项目2019_2019年6月Github上最热门的Python开源项目
- zk pivottable java_zookeeper节点类型和java客户端创建zk节点
- ctf php文件上传图片格式,CTF-WEB:文件上传
- python简介pdf_Py之pdfkit:python的库之pdfkit简介、安装、使用方法详细攻略
- Tensorflow的快速安装(张量图例)
- 计算机研究生进中国银行,听说中行笔试把研究生学姐都难哭了…
- TextView的跑马灯效果(AS开发实战第二章学习笔记)
- MySql access denied for user错误
- PowerShell 扩展工具第二波!