我有一个ASP.NET MVC项目。我有一个_Layout,一个控制器和一些视图。其中一些代码显然是全局的。例如,_Layout CSS和整个站点通用的CSS肯定会放在全局CSS文件中。
但是,当样式和JavaScript特定于某个视图时,它们应该包含在.cshtml文件中还是应该放在全局文件中?
但是,当样式和JavaScript特定于某个视图时,它们应该包含在.cshtml文件中还是应该放在全局文件中?
_Layout.cshtml:
<head>
@Styles.Render("~/Content/mastercss")
@Scripts.Render("~/bundles/masterjs")
@RenderSection("header", required: false)
</head>
视图:
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section header{
@Styles.Render("~/Content/viewspecific")
@Scripts.Render("~/bundles/viewspecific")
}
http://www.asp.net/mvc/overview/performance/bundling-and-minification
你可以通过在布局中使用RenderSection来定义一个区域,然后在视图中这样使用它:
<head>
<title>@ViewBag.Title</title>
<meta name="viewport" content="width=device-width" />
<script src="~/Content/Scripts/public.js"></script>
@RenderSection("head", false)
</head>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section head{
<script src="~/Content/Scripts/custom.js"></script>
}
.cshtml
文件中的JS和CSS使用,因为a)它们不能像上面所述那样进行捆绑/缩小,b)通常不能缓存,并且c)使调试样式和JS错误变得更加困难,因为现在有多个地方需要检查/跟踪。 - Tommy