(精华)2020年8月19日 ASP.NET MVC 母版页的使用
【摘要】
1、RenderBody
布局
在Razor引擎中没有“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中。在这个页面中,会看到标签里面有这样一条语句:
@...
1、RenderBody
布局
在Razor引擎中没有“母版页”,取而代之的是叫做“布局”的页面(_Layout.cshtml)放在了共享视图文件夹中。在这个页面中,会看到标签里面有这样一条语句:
@RenderBody()
其实它的作用和母版页中的服务器控件类似,当创建基于此布局页面的视图时,视图的内容会和布局页面合并,而新创建视图的内容会通过布局页面的@RenderBody()方法呈现在标签之间。
这个方法不需要参数,而且只能出现一次。
- 1
- 2
- 3
- 4
使用,子页面会自动填充到母版页 @RenderBody() 中
2、RenderSection
布局
布局页面还有节(Section)的概念,也就是说:如果某个视图模板中定义了一个节,那么可以把它单独呈现出来,用法如下:
@RenderSection(“head”,false) 当然还要在视图中定义节,否则会出现异常:
为了防止因缺少节而出现异常,可以给RenderSection()提供第2个参数:false,表示可有可无
- 1
- 2
- 3
使用
@secion head{ //do }
- 1
3、RenderPage
从名称可以猜出来这个方法是要呈现一个页面。比如网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:
@RenderPage("_FooterPartial.cshtml") 可以带参数
@RenderPage("_FooterPartial.cshtml",new {parm=“my”,parm2=“you”})
- 1
- 2
- 3
子页面
调用页面获取参数: //获取RenderPage()传递过来的参数 @PageData[“param”]
- 1
其他用法
@{ Html.RenderPartial("PartialPage", "这里是Html.RenderPartial"); }
<br />
<p>Html.Partial 返回的是字符串,放入当前位置</p>
@Html.Partial("PartialPage", "这里是Html.Partial")
<!--使用Action页-->
<br />
<p>Html.Action 返回的是字符串,放入当前位置,需要经过action的处理</p>
@Html.Action("ChildAction", "Second", new { name = "Html.Action" })
<br />
<p>Html.RenderAction 在指定位置添加一个view,返回void 需要放入大括号,需要经过action的处理</p>
@{Html.RenderAction("ChildAction", "Second", new { name = "Html.RenderAction" });}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
PartialPage页面
@model String
@{
ViewBag.Title = "PartialPage";
}
<h2>PartialPage Second</h2>
<h3>传递过来的数据:@Model</h3>
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
ChildAction控制器
[ChildActionOnly]//只能被子请求访问 不能独立访问
public ViewResult ChildAction(string name)
{
base.ViewBag.Name = name;
return View();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
文章来源: codeboy.blog.csdn.net,作者:愚公搬代码,版权归原作者所有,如需转载,请联系作者。
原文链接:codeboy.blog.csdn.net/article/details/108095842
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)