javascript - 从带有捆绑的 View 中将 Javascript 添加到 ASP.NET/MVC 网页的标题部分?

标签 javascript asp.net asp.net-mvc razor bundling-and-minification

如果找到这个 Stack Overflow 页面,它向您展示了如何将 Javascript 包含添加到 ASP.NET/MVC (Razor) View ,以便它最终出现在网页的 HEAD 部分:

Add CSS or JavaScript files to layout head from views or partial views

效果很好。但是我想知道是否有一种方法可以利用捆绑的方式来做到这一点?我发现这篇 SO 帖子说不可能并使用称为 Cassette 的东西,但它是从 2012 年开始的,所以我想知道现在是否有一种方法可以做到这一点 ASP.NET/MVC/Razor:

MVC Bundles: How to add assets in views and have them render combined with the main layout page bundle

我发现这篇 SO 帖子讨论了动态添加新包,但它似乎只将它们添加到 BODY 部分,而不是 HEAD:

MVC Bundles: How to add assets in views and have them render combined with the main layout page bundle

最佳答案

您的评论帮助我了解了您现在想要做什么。至于从 View 中渲染出包,它的工作方式与第一个问题的答案相同。

首先,为您想要的那些文件制作一个包。

BundleConfig.cs

bundles.Add(new ScriptBundle("~/bundles/mySpecialBundle").Include(
                      "~/Scripts/notOftenUsedScript.js",
                      "~/Scripts/someOtherScript.js"));

接下来,在您的布局中,定义一个您希望能够呈现 JavaScript 包的部分。

_layout.cshtml

@RenderSection("scripts", required: false)

现在,在您想要呈现特殊包的任何 View 中,引用本部分并使用与您在布局页面中用于包呈现的语法相同的语法。

ExampleView.cshtml

@section scripts{
    <!---Test section rendering-->
    @Scripts.Render("~/bundles/mySpecialBundle")
}

@Scripts.Render@Styles.Render 将在您应用程序的任何 razor 页面上运行。使用该部分可以让我们控制 View 页面的输出在母版页中的位置。

话虽如此,如果 JS 确实是轻量级的,那么在您的用户第一次点击带有特殊包的页面后,它应该由他们的浏览器缓存。因此,始终在您的布局中使用此功能对性能的影响可能在第一页点击时是最小的,而对于之后的每个页面点击则不存在。

关于javascript - 从带有捆绑的 View 中将 Javascript 添加到 ASP.NET/MVC 网页的标题部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27990917/

相关文章:

c# - 带有包装器的自定义 TextBox Asp.net MVC Helper

c# - 如何防止 ASP.NET Identity 外部登录在 url 末尾添加#?

javascript - angularjs 和 mocha 测试 Uncaught TypeError : (window. beforeEach || window.setup) 不是函数

javascript - 为什么 PHP MySQL INSERT 通过 AJAX 调用只是偶尔发生?

javascript - 更新 Bootstrap 日期范围日期选择器以仅允许结束日期在开始日期的会计年度内

asp.net - 在 ASP MVC5 中对同一操作定义属性路由后如何重定向到操作

c# - Fluent 验证中的密码验证器

javascript - 在父级中使用 Object.assign 设置子属性

javascript switch 中断检测到无法访问的代码

c# - NPOI Excel 数字格式未显示在 asp.net 的 Excel 工作表中