Использование ASP.NET пакеты Javascript от контроллера


Я понимаю, что это нарушает шаблон MVC, но есть реальная причина сделать это таким образом в приложении, которое я в настоящее время создаю:)

То, что я пытаюсь сделать, - это вывести пакет JavaScript непосредственно из контроллера, а не через ссылку через представление.

Так, например, у меня есть связка под названием "~/jQueryPlugin", что я хотел бы сделать, это что-то вроде

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

Однако за всю свою жизнь я не могу понять, какой должна быть BundleTable.GetBundle("~jQueryPlugin").BundleContent часть для того чтобы получить строковое представление комбинированного свернутого пучка.

Любая помощь будет признательна·

1 2

1 ответ:

В версии 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 во время сборки.