(精华)2020年8月19日 ASP.NET MVC 母版页的使用
发布日期:2021-06-29 15:10:23 浏览次数:3 分类:技术文章

本文共 1383 字,大约阅读时间需要 4 分钟。

1、RenderBody

布局

在Razor引擎中没有“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中。在这个页面中,会看到标签里面有这样一条语句:@RenderBody()其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间。这个方法不需要参数,而且只能出现一次。

使用,子页面会自动填充到母版页 @RenderBody() 中

2、RenderSection

布局

布局页面还有节(Section)的概念,也就是说:如果某个视图模板中定义了一个节,那么可以把它单独呈现出来,用法如下:@RenderSection(“head”,false) 当然还要在视图中定义节,否则会出现异常:为了防止因缺少节而出现异常,可以给RenderSection()提供第2个参数:false,表示可有可无

使用

@secion head{
//do }

3、RenderPage

从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:@RenderPage("_FooterPartial.cshtml") 可以带参数@RenderPage("_FooterPartial.cshtml",new {
parm=“my”,parm2=“you”})

子页面

调用页面获取参数: //获取RenderPage()传递过来的参数 @PageData[“param”]

其他用法

@{
Html.RenderPartial("PartialPage", "这里是Html.RenderPartial"); }

Html.Partial 返回的是字符串,放入当前位置

@Html.Partial("PartialPage", "这里是Html.Partial")

Html.Action 返回的是字符串,放入当前位置,需要经过action的处理

@Html.Action("ChildAction", "Second", new {
name = "Html.Action" })

Html.RenderAction 在指定位置添加一个view,返回void 需要放入大括号,需要经过action的处理

@{
Html.RenderAction("ChildAction", "Second", new {
name = "Html.RenderAction" });}

PartialPage页面

@model String@{
ViewBag.Title = "PartialPage";}

PartialPage Second

传递过来的数据:@Model

ChildAction控制器

[ChildActionOnly]//只能被子请求访问  不能独立访问 public ViewResult ChildAction(string name) {
base.ViewBag.Name = name; return View(); }

转载地址:https://codeboy.blog.csdn.net/article/details/108095842 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:(精华)2020年8月19日 ASP.NET MVC 控制器工厂实现Unity容器注入
下一篇:(精华)2020年8月19日 ASP.NET MVC 内置扩展控件的使用

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月19日 14时39分59秒