我们正在制作一个.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");
}
答案 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)
var bundle = System.Web.Optimization.BundleTable.Bundles.GetBundleFor("~/widgetspecific");
答案 2 :(得分:2)
您需要为每个小部件创建一个新的包,否则如果您重新使用"〜/ widgetspecific"捆绑它会在您浏览网站时继续添加上一页面小部件中的脚本。