繁体   English   中英

从捆绑视图中将Javascript添加到ASP.NET / MVC网页的标题部分?

[英]Add Javascript to header section of an ASP.NET/MVC web page from a view with bundling?

如果找到此Stack Overflow页面,它向您展示如何将Javascript include添加到ASP.NET / MVC(Razor)视图中,以便它最终位于Web页面的HEAD部分:

从视图或部分视图添加CSS或JavaScript文件到布局头

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

MVC Bundles:如何在视图中添加资源,并将它们与主布局页面包相结合进行渲染

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

MVC Bundles:如何在视图中添加资源,并将它们与主布局页面包相结合进行渲染

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

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

BundleConfig.cs

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

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

_layout.cshtml

@RenderSection("scripts", required: false)

现在,在任何要呈现特殊包的视图中,请引用此部分并使用与布局页面中相同的语法进行包呈现。

ExampleView.cshtml

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

@Scripts.Render@Styles.Render可以在您的应用程序中的任何剃刀页面上运行。 使用该部分可以控制我们的视图页面的输出将在主页面中的位置。

话虽如此,如果JS真的是轻量级的,那么在用户第一次点击带有特殊包的页面之后,它应该由他们的浏览器缓存。 因此,在您的布局中始终保持这种性能的所有时间可能是最小的第一页命中,并且之后每个页面都不存在。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM