4

我有我的 ASP.NET MVC 项目。我有一个 _Layout、一个控制器和一些视图。一些代码显然是全局的。例如 _Layout CSS 和整个站点通用的 CSS 肯定会放在全局 css 文件中。

但是,当样式和 JavaScript 特定于视图时,它们应该包含在 .cshtml 文件中还是应该包含在全局文件中?

4

3 回答 3

0

所有视图共有的东西应该包含在 _Layout 文件中。为特定页面自定义的 CSS 和 Javascript 应仅在该特定页面上加载。(不是编写的,而是从不同的 .JS 或 css 文件呈现)

于 2015-02-10T12:07:39.507 回答
0

通过这种方式,视图特定资源被捆绑和缩小

_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")
}

捆绑包应按需要它们的页面进行分区。例如,Internet 应用程序的默认 ASP.NET MVC 模板会创建一个独立于 jQuery 的 jQuery Validation 包。因为创建的默认视图没有输入并且不发布值,所以它们不包括验证包

http://www.asp.net/mvc/overview/performance/bundling-and-minification

于 2015-02-10T12:02:42.787 回答
0

您可以通过布局中的 RenderSection 定义一个部分,然后在您的视图中使用它,如下所示:

_Layout.cshtml:

<head>
<title>@ViewBag.Title</title>
<meta name="viewport" content="width=device-width" />
<script src="~/Content/Scripts/public.js"></script>
@RenderSection("head", false)
</head>

Post.cshtml:

@{
    Layout = "~/Views/Shared/_Layout.cshtml";
 }
@section head{
<script src="~/Content/Scripts/custom.js"></script>
}
于 2014-09-26T09:39:47.650 回答