在很多时候我们把网站公共的js、css文件放在模板页中,这样在具体的每一个页面里面就不需要单独引用。
ASP.NET WebForm里面使用.site文件。
而在ASP.NET MVC 中使用了类似下面的定义
_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.8.0.min.js")" type="text/javascript"></script>
</head>
<body>
@RenderBody()
</body>
</html>
这样在子页中的代码就直接进入html的body中了。
但是有时候单独的页面有单独的头文件,不需要在模板页中引用。那此时需要用如下的方法了:
_Layout.cshtml:
<!DOCTYPE html>
<html>
<head>
<title>@ViewBag.Title</title>
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery-1.8.0.min.js")" type="text/javascript"></script>
@RenderSection("Head", required: false)
</head>
<body>
@RenderBody()
</body>
</html>
注意在head节点中增加了
@RenderSection("Head", required: false)
这样在对应的页面中可以使用如下代码进行引用
@section Head{
<link href="@Url.Content("~/Content/css/datebox.css")" rel="stylesheet" type="text/css" />
<link href="@Url.Content("~/Content/css/easyui.css")" rel="stylesheet" type="text/css" />
<script src="@Url.Content("~/Scripts/jquery.easyui.min.js")" type="text/javascript"></script>
}
注意:如果在head节点中定义的required值为true,则必须要为每一个使用模板页的页面添加引用代码,如果required值为false,则可以增加也可以不增加。