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相关推荐

  1. MVC Razor模板引擎 @RenderBody、@RenderPage、@RenderSection及Html.RenderPartial、Html.RenderAction...

    一.Views文件夹 -> Shared文件夹下的 _Layout.cshtml 母版页 @RenderBody 当创建基于_Layout.cshtml布局页面的视图时,视图的内容会和布局页面合 ...

  2. @RenderBody、@RenderSection、@RenderPage、Html.RenderPartial、Html.RenderAction的作用和区别...

    1. RenderBody 在Razor引擎中没有了"母版页",取而代之的是叫做"布局"的页面(_Layout.cshtml)放在了共享视图文件夹中.在这个页面 ...

  3. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(7.2) 模块管理,模块的添加、修改、删除...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做模块管理的 添加.修改.删除 项目准备 我们用的工具是:VS 2013 + SqlSer ...

  4. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(8) 权限管理,自定义权限,扩展权限...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来做权限的管理,这篇比较多 希望新手朋友慢慢消化 项目准备 我们用的工具是:VS 2013 ...

  5. 【无私分享:从入门到精通ASP.NET MVC】从0开始,一起搭框架、做项目(5.5) 登录功能的实现,完善登录功能...

    索引 [无私分享:从入门到精通ASP.NET MVC]从0开始,一起搭框架.做项目 目录索引 简述 今天我们来完善我们的登录功能 项目准备 我们用的工具是:VS 2013 + SqlServer 20 ...

  6. C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows、Liux环境下程序发布

    C# Asp.Net6 MVC,Log4net NLog 日志插件应用 及Windows.Liux环境下程序发布 一. MVC含义 二.数据传输 1.控制器向视图传输数据 三.日志组件Log4net ...

  7. 前端MVC Vue2学习总结(四)——条件渲染、列表渲染、事件处理器

    一.条件渲染 1.1.v-if 在字符串模板中,如 Handlebars ,我们得像这样写一个条件块: <!-- Handlebars 模板 --> {{#if ok}}<h1> ...

  8. 【网络安全】——服务端安全(注入攻击、认证与会话管理和访问控制、访问控制、加密算法与随机数、Web框架安全、应用层拒绝服务攻击DDOS)

    这一篇博客记录的是服务端安全应用安全的知识,学习内容来自<白帽子讲Web安全>. ​ 承接自上一篇客户端安全之后,包括注入攻击.认证与会话管理和访问控制.访问控制.加密算法与随机数.Web ...

  9. 3、JavaWeb中Service层的作用、MyBatis的重要组件、mybatis-config.xml中的别名映射、properties配置、#{}和${}的区别、获取插入数据的主键值

    文章目录 1.Service层的作用 2.MyBatis重要组件 Resources SqlSessionFactoryBuilder SqlSessionFactory SqlSession 针对上 ...

最新文章

  1. EOS 智能合约源代码解读 (10)token合约“简介”
  2. C++中#ifndef/#define/#endif使用详解
  3. VTK:定向圆柱体用法实战
  4. iOS 调用h5页面 视频不自动播放的问题
  5. Fastify 2.0.1 和 1.14.3 发布,极速 Node.js Web 框架
  6. Spring 事务原理和使用
  7. [html] 如何更改浏览器左上角标题旁的图标?
  8. 吓坏了!智能锁半夜自己“离奇打开”
  9. office组件导入导出常见异常记录
  10. python系列3—顺序结构和分支结构
  11. 安卓修改软件安装时间_LaTeX软件安装教程
  12. 【Python】迭代法求解非线性方程及方程组
  13. 一个女孩写给女孩的话
  14. 【渝粤教育】电大中专常见病药物治疗_1作业 题库
  15. Docker疑难杂症汇总
  16. 疫情放开,新冠防治药推荐,中医治疫病的准则
  17. 虹科ELPRO - EMS系统实现苏州某医药仓库温湿度自动监测 - 100% GxP合规
  18. 基于SSM企业生产计划管理系统
  19. 自动驾驶入门技术(3) —— 毫米波雷达
  20. 上海市计算机一级考试试题模拟,48-上海市高校计算机等级考试一级 模拟试题...

热门文章

  1. php同学录网站设计_基于PHP的校友录系统的设计与实现
  2. python开源项目2019_2019年6月Github上最热门的Python开源项目
  3. zk pivottable java_zookeeper节点类型和java客户端创建zk节点
  4. ctf php文件上传图片格式,CTF-WEB:文件上传
  5. python简介pdf_Py之pdfkit:python的库之pdfkit简介、安装、使用方法详细攻略
  6. Tensorflow的快速安装(张量图例)
  7. 计算机研究生进中国银行,听说中行笔试把研究生学姐都难哭了…
  8. TextView的跑马灯效果(AS开发实战第二章学习笔记)
  9. MySql access denied for user错误
  10. PowerShell 扩展工具第二波!