MVC4 связывание/минимизация с условными комментариями IE

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

Для условных комментариев IE я все еще делаю это по-старому: <!--[if lt IE 9]><link href=.../><![endif]--> или <!--[if lt IE 9]>@Styles.Render("~/foo")<![endif]-->, но я, похоже, не получаю автоматическую обработку отладки/выпуска.

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

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

Ответ 1

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

public static IHtmlString RenderStylesIe(string ie, params string[] paths) {
  var tag = string.Format("<!--[if {0}]>{1}<![endif]-->", ie, Styles.Render(paths));
  return new MvcHtmlString(tag);
}

Существует аналогичный метод для скриптов. Представление вызывает их как таковые:

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

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

Ответ 2

Скоро будет выпущено обновление 1.1-alpha1, которое будет поддерживать ваше собственное форматирование тегов с помощью помощников сценариев/стилей.

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

"<script src="{0}"></script>"

Также существует метод RenderFormat, который также принимает формат тега. Вы должны иметь возможность контролировать рендеринг немного больше с ними. Это то, что вы пытаетесь сделать в строке формата?

Ответ 3

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

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

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

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

)