[asp.net-mvc]在 asp.net 中捆绑销售

发布时间: 2016/10/9 2:18:27
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我使用 ASP.net MVC 应用程序中捆绑销售。我想要建立我束在层次结构的方式。

例如,这些是我想要在我的网页的脚本︰

 bundles.Add(new ScriptBundle("~/bundles/bootstrap-js").Include(
                                         "~/Scripts/bootstrap.js",
                                         "~/Scripts/respond.js",
                                         "~/Scripts/bootstrap-datetimepicker.min.js",
                                         "~/Scripts/jquery.smartmenus.js",
                                         "~/Scripts/jquery.smartmenus.bootstrap.js"
                                         ));

接下来我想要例如淘汰赛只有某些页面上︰

bundles.Add(new ScriptBundle("~/bundles/knockout-js").Include(
                                "~/Scripts/knockout/knockout-3.4.0.js",
                                "~/Scripts/knockout/knockout-kendo.js",
                                "~/Scripts/knockout/knockout.mapping-latest.js",
                                "~/Scripts/knockout/knockout.validation.js",
                                "~/Scripts/knockout/knockout.validation.de-DE.js",
                                "~/Scripts/knockout/knockout.validation.fr-BE.js",
                                "~/Scripts/knockout/knockout.validation.nl-BE.js",
                                "~/Scripts/knockout/Knockout.bindinghandlers.js",
                                "~/Scripts/knockout/knockout.validation.mvc.js"));

最后,我想每个页面都有它自己的自定义脚本。

bundles.Add(new ScriptBundle("~/bundles/scriptName-js").Include(
                                "~/Views/Cards/scriptName.js"));

所以我只有通过结合所有以前捆绑在一个包包含一个 @scripts.render 语句,有没有办法?

 @Scripts.Render("~/bundles/mypage-js")

我试过,但它不工作︰

 bundles.Add(new ScriptBundle("~/bundles/mypage-js").Include("~/bundles/scrip‌​tName-js","~/bundles‌​/knockout-js","~/bun‌​dles/bootstrap-js"))‌​; 

解决方法 1:

那里是过载Include ,接受数组的路径而不是 params 的路径。 你可以使用这个定义作为共享脚本块 string[] ,然后将它们包括︰

var everyPage =  new [] {
    "~/Scripts/bootstrap.js",
    "~/Scripts/respond.js",
    "~/Scripts/bootstrap-datetimepicker.min.js",
    "~/Scripts/jquery.smartmenus.js",
    "~/Scripts/jquery.smartmenus.bootstrap.js"
};

var knockout = new [] {
    "~/Scripts/knockout/knockout-3.4.0.js",
    "~/Scripts/knockout/knockout-kendo.js",
    //etc...
};

bundles.Add(new ScriptBundle("~/bundles/scriptName-js")
  .Include(everyPage)
  .Include(knockout)
  .Include("~/Views/Cards/scriptName.js")
);

它都不是十分简明,以从另一个引用一捆,乃是比重复每个块的脚本

赞助商