2014-02-17 30 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”捆绑将继续从添加脚本前一页的小部件,当你浏览你的网站。