从.NET MVC 5中的部分视图添加到脚本包

时间:2014-02-17 09:01:34

标签: javascript css asp.net-mvc

我们正在制作一个.Net MVC websolution,它将使用呈现为HTML.Partials()的小部件。我们希望部分视图能够在主页面视图脚本标签中添加其依赖项,包括css文件和javascript文件。

我一直在尝试使用此代码。但是js文件没有在我页面的布局部分呈现。有什么问题?

@{

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

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

3 个答案:

答案 0 :(得分:14)

它似乎特定于我的jquery包。它现在有效,我添加了一个特定于小部件的包,您可以在其中添加脚本以在主布局中呈现。该捆绑包还会多次处理相同文件的添加(如果同一个窗口小部件在同一页面上存在多次,则会发生这种情况),并且只渲染一次。我的解决方案在下面添加,似乎从我迄今为止所做的搜索中得到了很好的记录。

在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");
}

有人意识到这个解决方案的消极方面吗?

答案 1 :(得分:6)

<@>凯泽,你自己的回答。在Widget.cshtml中,您可能想要使用

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

答案 2 :(得分:2)

您需要为每个小部件创建一个新的包,否则如果您重新使用&#34;〜/ widgetspecific&#34;捆绑它会在您浏览网站时继续添加上一页面小部件中的脚本。