Asp.Net_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()方法快,基于第一条原因
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?