Вопрос по asp.net-mvc, conditional-comments, bundling-and-minification, asp.net-mvc-4, asp.net-optimization – Пакетирование / минификация MVC4 с условными комментариями IE

13

Я пытаюсь использовать MVC4 'с новымпакетирование и минификация ".

Для условных комментариев IE яЯ все еще делаю это по-старому: или же но я неКажется, что он получает автоматическую обработку отладки / выпуска.

Есть ли встроенный способ сделать это? Как другие делают это?

РЕДАКТИРОВАТЬ:

Также было бы здорово иметь возможность включать теги внутри визуализированного вывода (используется для отступления).

Ваш Ответ

3   ответа
15

Пока я не нашел лучший способ, я сделал класс адаптера под названиемBundles, который имеет метод:

public static IHtmlString RenderStylesIe(string ie, params string[] paths) {
  var tag = string.Format("", ie, Styles.Render(paths));
  return new MvcHtmlString(tag);
}

Есть похожий метод для скриптов. Представление называет их так:

@Bundles.RenderStylesIe("lt IE 9", "~/Content/foo")
@Bundles.RenderScriptsIe("lte IE 7", "~/Scripts/bar")

Если есть лучший способ, яБуду признателен за совет.

Я нашел это решение довольно элегантным Steven Ryssaert
Также не уверены в элегантном способе выпекать в тэг, обычно используемый для откатов css. Bobby B
Недостаток этого подхода, если у меня есть куча стилей или скриптов, которые нужныесли это IE 9 " а также "если IE 7 " затем они должны быть помещены в отдельные пакеты и представлены отдельно. Bobby B
-2

Альтернатива, которую я нашел, была здесь:https://coderwall.com/p/5zqvkg

Это вопрос предпочтения

(Все еще люблю код выше - он намного чище и легче читается)

@Bundles.RenderStylesIe("lt IE 9", "~/Content/foo")
@Bundles.RenderScriptsIe("lte IE 7", "~/Scripts/bar")

Приведенная выше ссылка опубликовать решение, которое не работает на практике WebDever
5

В скором времени будет выпущено обновление 1.1-alpha1, в котором будет реализована поддержка форматирования тегов с помощью помощников Scripts / Styles.

Там's новое свойство DefaultTagFormat, которое по умолчанию установлено в:

""

Там's также метод RenderFormat, который также принимает формат тега. Вы должны быть в состоянии контролировать рендеринг с этим. Возможно ли то, что вы пытаетесь сделать в строке формата?

Гениальночто нам нужно С нетерпением жду релиза. Bobby B
1.1-alpha1 теперь на nuget, так что вы можете попробовать это.nuget.org/packages/Microsoft.AspNet.Web.Optimization Hao Kung
Не уверен, не увидев образец / подпись, но не уверен, что он может работать с вашими новыми изменениями, так как условные комментарии размещаются вне тега script / style. Способ, который я описал в своем ответе, не идеален, но работает хорошо. Bobby B
В основном формат будет тем, что мы используем для создания отдельных тегов скрипта / ссылки. Таким образом, вы можете сделать что-то вроде: Scripts.RenderFormat ("<! - [if lte IE 7]>{0} <! [ENDIF] ->»дорожки) Hao Kung
Кроме того, и это только личные предпочтения! Мне нравится возможность использовать мой класс для вызоваBundles скорее, чемStyles а такжеScripts, Это'более самостоятельным. Новые методы, которые выЯ описал звук очень полезным, хотя. Bobby B

Похожие вопросы