繁体   English   中英

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

[英]Adding to script bundle from partial view in .NET MVC 5

我们正在制作一个.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");
}

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM