您的位置:首页 > 其它

mvc4布局方法

2014-05-19 13:49 113 查看

概述

布局用来创建统一的外观(泛一点来说,就是html中的head等无关页面通用的部分),用vs2012创建默认的mvc4项目之后,布局文件为:Views \Shared\_Layout.cshml,而Views下的_ViewStart.cshml则是用来指定布局文件,只有下面一行代码:

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


它会将此布局应用到当前Views中所有的页面中,如果不用此布局,则要在视图中自行指定布局,语法同上面代码一样,所以重要的是这个_ViewStart.cshml,它就像一个入口一样 ,如果用oo来理解,则可以说它是其他视图的基类(当在视图中指定了布局,则会替代_ViewStart.cshml中的设定)。

(如果使用了区域,则每个区域下的都会有一个_ViewStart.cshml文件,其配置同上面的概念一样)。

布局文件的一般样式

下面的代码来自w3School,它是一个布局文件:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"></script>
<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")"></script>
</head>
<body>
<ul id="menu">
<li>@Html.ActionLink("Home", "Index", "Home")</li>
<li>@Html.ActionLink("Movies", "Index", "Movies")</li>
<li>@Html.ActionLink("About", "About", "Home")</li>
</ul>
<section id="main">
@RenderBody()
<p>Copyright W3schools 2012. All Rights Reserved.</p>
</section>
</body>
</html>


如果一个视图A应用了这个布局,A中的内容将填充@RenderBody()的位置,如果要用A中的section来填充布局文件的任何部分,则只需在布局文件中指定位置加上下面一段代码:

@RenderSection("target", required: false)


视图中用如下代码段,则在应用布局时,此代码会自动替代@RenderSection(……)这一段。

@Section target{……代码……}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: