使用控制器的ASP.NET JavaScript捆绑包



我意识到这打破了MVC模式,但是有一个可行的理由在我当前正在构建的应用程序中这样做:)

我要做的是直接从控制器而不是通过链接通过视图输出JavaScript束。

所以例如,我有一个叫"〜/jqueryplugin"的捆绑包,我想做的是

的行

return this.JavaScript(BundleTable.GetBundle("~jQueryPlugin").BundleContent)"

但是,在我的寿命中,我无法弄清楚BundleTable.GetBundle("~jQueryPlugin").BundleContent部分应该是什么,以获取组合最小化捆绑包的字符串表示。

任何帮助都将不胜感激·

在1.1-Alpha1版本中,我们添加了一个新的优化器类,该类应该使您更轻松地执行此操作。它的目的是在ASP.NET托管的一边使用的独立类,因此将其设置为略有不同。

您可以通过类似的内容来获得捆绑包的内容:

        OptimizationSettings config = new OptimizationSettings() {
            ApplicationPath = "<your physical path to the app>",
            BundleSetupMethod = (bundles) => {
                bundles.Add(new ScriptBundle("~/bundles/js").Include("~/scripts/jqueryPlugin.js"));
            }
        };
        BundleResponse response = Optimizer.BuildBundle("~/bundles/js", config);
        Assert.IsNotNull(response);
        Assert.AreEqual("<your bundle js contents>", response.Content);
        Assert.AreEqual(JsMinify.JsContentType, response.ContentType);

下一个版本应该更多地消除此情况,因为与Visual Studio建立时间捆绑在一起需要。

最新更新