ASP.NET MVC中的嵌套布局页

网友投稿 262 2022-11-28

ASP.NET MVC中的嵌套布局页

在WEB窗体模式中,用惯了母版页,并且常有母版页嵌套的情况。

而在MVC模式下,对应母版页的,称作为布局页。默认的布局页为 ~/Views/Shared/_Layout.cshtml。默认每个页面都会嵌于其中,因为在~/Views/_ViewStart.cshtml里已经写好:

@{ Layout = "~/Views/Shared/_Layout.cshtml";}

当然,这个应该可以改的,但一般没有必要。我的做法是,将_Layout.cshtml作为基本母版页,然后再在上面衍生出各种子母版页。以下分别是_Layout.cshtml和某一子布局页(_SingleContent_Layout.cshtml)的代码:

_Layout.cshtml

@using common = AppCode.Common; @common.GetTitle(ViewBag.IndependentTitle,ViewBag.Title) @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") @RenderSection("header", required: false)

@{Html.RenderAction("LoginInfo", "Partial");}
@{Html.RenderAction("Navi" , "Partial" , new { parentController = ViewContext.RouteData.Values["controller"].ToString() });}
@RenderBody()
@Scripts.Render("~/bundles/jquery182") @RenderSection("scripts", required: false)

子母版页_SingleContent_Layout.cshtml

@{ Layout = "~/Views/Shared/_Layout.cshtml";}@section header{ @Styles.Render("~/Content/SingleContent") @* 这是本子布局页的子页插入内容的入口,注意到没?它写在本子布局页插入母版页的入口处*@ @RenderSection("header", required: false)}@section Scripts { @RenderSection("scripts", required: false)}

@RenderBody()

内容页index.cshtml

@{ ViewBag.Title = "Service"; Layout = "~/Views/Shared/_SingleContent_Layout.cshtml";}

服务条款

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Epson推出全新五款商务/教育投影机种
下一篇:问题重重呀
相关文章

 发表评论

暂时没有评论,来抢沙发吧~