admin管理员组文章数量:1794759
(精华)2020年8月19日 ASP.NET MVC 母版页的使用
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"); } <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" });}PartialPage页面
@model String @{ ViewBag.Title = "PartialPage"; } <h2>PartialPage Second</h2> <h3>传递过来的数据:@Model</h3>ChildAction控制器
[ChildActionOnly]//只能被子请求访问 不能独立访问 public ViewResult ChildAction(string name) { base.ViewBag.Name = name; return View(); }版权声明:本文标题:(精华)2020年8月19日 ASP.NET MVC 母版页的使用 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686518765a76770.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论