如果找到这个 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:
我发现这篇 SO 帖子讨论了动态添加新包,但它似乎只将它们添加到 BODY 部分,而不是 HEAD:
最佳答案
您的评论帮助我了解了您现在想要做什么。至于从 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/