Как использовать директивы препроцессора на страницах MVC aspx - PullRequest
1 голос
/ 13 апреля 2010

Я использую MinifyJS.tt, который является шаблоном T4, чтобы автоматически минимизировать все мои файлы JS. В моих файлах aspx я ссылаюсь на все файлы javascript.

Теперь я хочу добавить условие (возможно, директиву компилятора), чтобы использовать исходный файл JS при отладке приложения, и использовать уменьшенные файлы JS, когда я просто запускаю приложение без отладки. Я попытался использовать #if на странице aspx, но это не сработало.

Можем ли мы использовать директивы препроцессора на страницах aspx? Есть ли альтернативный способ достижения моей цели?

1 Ответ

2 голосов
/ 13 апреля 2010

Вы можете использовать следующее:

if (!HttpContext.Current.IsDebuggingEnabled)
    Script = OptimizeScript(Script);

Далее ..... Есть пара комментариев, чем обсуждать тему дальше.

От Wilco Bauwer он комментирует, что это свойство инкапсулирует настройку web.config и не учитывает отладку на уровне страницы, и если вы хотите ....

bool isDebuggingEnabled = Assembly.GetExecutingAssembly().IsDefined(typeof(DebuggableAttribute));

.... это парень, который этого добился !!

и Питер Бромберг (C # MVP) предлагает другое решение, использующее файл Global.asax.cs и статический глобальный флаг приложения, устанавливаемый в событии Application_Start.

public static bool IsDebugMode = false;
protected void Application_Start(object sender, EventArgs e)
{
   if (System.Diagnostics.Debugger.IsAttached) IsDebugMode = true;

Взято из Блог Стива

...