簡體   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