2

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

我想要做的是直接从控制器输出一个 JavaScript 包,而不是通过视图的链接。

因此,例如,我有一个名为“~/jQueryPlugin”的包,我想做的是类似于

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

但是,对于我的一生,我无法弄清楚该BundleTable.GetBundle("~jQueryPlugin").BundleContent部分应该是什么才能获得组合最小化捆绑包的字符串表示形式。

任何帮助,将不胜感激·

4

1 回答 1

1

在 1.1-alpha1 版本中,我们添加了一个新的 Optimizer 类,它可以让您更轻松地做到这一点。它旨在成为一个独立的类,可以在 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 集成所必需的。

于 2012-11-09T18:53:48.390 回答