首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在asp.net中捆绑

在asp.net中捆绑
EN

Stack Overflow用户
提问于 2016-09-27 20:06:14
回答 1查看 272关注 0票数 1

我在一个ASP.net MVC应用程序中使用了捆绑。我想以一种分层的方式构建我的bundle。

例如,这些是我想在我所有的网页上使用的脚本:

代码语言:javascript
复制
 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"
                                         ));

下一步,我只想在一些页面上使用knockout:

代码语言:javascript
复制
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"));

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

代码语言:javascript
复制
bundles.Add(new ScriptBundle("~/bundles/scriptName-js").Include(
                                "~/Views/Cards/scriptName.js"));

有没有一种方法可以让我只需要包含一条@scripts.render语句,就可以将以前的所有包合并到一个包中?

代码语言:javascript
复制
 @Scripts.Render("~/bundles/mypage-js")

我试过了,但不起作用:

代码语言:javascript
复制
 bundles.Add(new ScriptBundle("~/bundles/mypage-js").Include("~/bundles/scrip‌​tName-js","~/bundles‌​/knockout-js","~/bun‌​dles/bootstrap-js"))‌​; 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-27 20:42:05

有一个Includeoverload,它接受路径数组而不是路径的params。您可以使用它将共享脚本块定义为string[],然后将其包括在内:

代码语言:javascript
复制
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")
);

它不像从一个包中引用另一个包那样简洁,但比重复每个脚本块要好

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39724212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档