【问题标题】:Adding to script bundle from partial view in .NET MVC 5从 .NET MVC 5 中的部分视图添加到脚本包
【发布时间】:2014-02-17 09:01:33
【问题描述】:

我们正在制作一个 .Net MVC 网络解决方案,它将使用呈现为 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");
}

【问题讨论】:

    标签: javascript css asp.net-mvc


    【解决方案1】:

    它似乎是特定于我的 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");
    }
    

    有人知道这个解决方案的负面影响吗?

    【讨论】:

    • 这是一个非常有用的方法,非常好!感谢分享!
    【解决方案2】:

    @The Kaiser,上面有你自己的答案。在 Widget.cshtml 你可能想使用

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

    【讨论】:

      【解决方案3】:

      您需要为每个小部件创建一个新包,否则如果您重新使用“~/widgetspecific”包,它将在您浏览网站时继续添加上一页小部件中的脚本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-03-02
        • 2015-09-26
        • 2019-09-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多