2014-02-17 70 views
6

我們正在製作一個.Net MVC websolution,它將使用呈現爲HTML.Partials()的小部件。我們希望能夠在部分視圖中將其依賴關係添加到主頁面視圖腳本標記中,包括css文件以及javascript文件。從.NET MVC中的部分視圖添加到腳本包5

我一直在嘗試使用這段代碼。但是js文件並沒有呈現在我的頁面的佈局部分。哪裏不對?

@{ 

    var bundle = System.Web.Optimization.BundleTable.Bundles.GetRegisteredBundles() 
     .Where(b => b.Path == "~/bundles/jquery") 
     .First(); 

    bundle.Include("~/Scripts/addtojquerybundletest.js"); 
} 

回答

13

這似乎是特定於我的jquery包。它現在可以工作,我添加了一個widgetspecific bundle,您可以添加腳本在主佈局中呈現。該軟件包還會處理多次添加同一文件(如果同一個小部件在同一頁面上存在多次,則會發生這種情況),並且僅對其進行一次渲染。我的解決方案添加到下面,這似乎沒有從迄今爲止所做的搜索中得到很好的記錄。

在BundleConfig.cs:

bundles.Add(new ScriptBundle("~/widgetspecific")); 

在_Layout.cshmtl:

@Scripts.Render("~/widgetspecific") 

在Widget.cshtml:

@{ 
    var bundle = System.Web.Optimization.BundleTable.Bundles.GetBundleFor("~/widgetspecific"); 

    bundle.Include("~/Scripts/andreas.js"); 
} 

是任何人都知道的消極方面,該解決方案?

+0

這似乎也適用於Html.Action() –

6

@The凱澤,爲您自己的答案上面。在Widget.cshtml你可能想使用

var bundle = System.Web.Optimization.BundleTable.Bundles.GetBundleFor("~/widgetspecific"); 
+0

我編輯了我的回覆,謝謝! :) –

2

您需要創建每個插件新的組合,否則,如果重新使用「〜/ widgetspecific」捆綁將繼續從添加腳本前一頁的小部件,當你瀏覽你的網站。