Использование ASP.NET пакеты Javascript от контроллера
Я понимаю, что это нарушает шаблон MVC, но есть реальная причина сделать это таким образом в приложении, которое я в настоящее время создаю:)
То, что я пытаюсь сделать, - это вывести пакет JavaScript непосредственно из контроллера, а не через ссылку через представление.
Так, например, у меня есть связка под названием "~/jQueryPlugin", что я хотел бы сделать, это что-то вроде
return this.JavaScript(BundleTable.GetBundle("~jQueryPlugin").BundleContent)"
Однако за всю свою жизнь я не могу понять, какой должна быть BundleTable.GetBundle("~jQueryPlugin").BundleContent
часть для того чтобы получить строковое представление комбинированного свернутого пучка.
Любая помощь будет признательна·
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 во время сборки.