MVC布局页面出现在共享文件Shared下
1、@Styles.Render("~/Content/css")
用来加载css,跟App_Start 文件夹下面的BundleConfig.cs相关联,要在BundleConfig.cs配置好css路径,代码如下
bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css"));
2、@Scripts.Render("~/bundles/modernizr")
用来加载js,跟App_Start 文件夹下面的BundleConfig.cs相关联,要在BundleConfig.cs配置好js路径,代码如下
bundles.Add(new ScriptBundle("~/bundles/modernizr").Include("~/Scripts/modernizr-*"));
3、@RenderSection("featured",required:false)
RenderSection相当于在母版页占一个位置,解决子页面差异化问题,比如js、css引用或者调用
两个参数,第二个参数默认为true,如果为true,子页面必须出现@RenderSection("featured")的实现,如果为false,则可有可无
母版页代码
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta charset="utf-8" /> <title>@ViewBag.Title - 我的 ASP.NET MVC 应用程序</title> <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" /> <meta name="viewport" content="width=device-width" /> @Styles.Render("~/Content/css") @Scripts.Render("~/bundles/modernizr") @RenderSection("myscritp", false); </head>
子页面实现
@section myscript{ <script type="text/javascript" src="/js/jquery.js"></script> function a() { alert(""); } }
4、@RenderBody()
当创建基于_Layout.cshtml布局页面时,子页面内容将和布局页面合并呈现,子页面内容将在RenderBody()标签之间显示,RenderBody()没有参数,只出现一次
5、@RenderPage()
网页中固定的头部可以单独放在一个共享的视图文件中,然后在布局页面中通过这个方法调用,用法如下:
@RenderPage(“~/Views/Shared/_Header.cshtml”)
带参数
@RenderPage(“~/Views/Shared/_Header.cshtml”,new{parm="my",parm2="you")
调用页面获取参数:
//获取 RenderPage() 传递过来的参数
@PageData["param"]