Это встроено вHttpContext :
@if (HttpContext.Current.IsDebuggingEnabled)
{
// Means that debug="true" in Web.config
}
ИМО, это имеет больше смысла, чем условная компиляция для представлений и пригодится для некоторых сценариев тестирования. (См . Комментарий Тони Уолла ниже.)
Примечание стороны: NullReferenceExceptionдляHttpContext.Current
Алекс Ангас упомянул, что они получили NullReferenceExceptionэто решение, и несколько человек проголосовали, указав, что это не может быть единичным событием.
Мое лучшее предположение: HttpContext.Currentхранится в том CallContextсмысле, что он доступен только потоку, который обрабатывает входящий HTTP-запрос. Если ваши представления отображаются в другом потоке (возможно, некоторые решения для предварительно скомпилированных представлений?), Вы получите nullзначение для HttpContext.Current.
Если вы получили эту ошибку, пожалуйста, дайте мне знать в комментариях и укажите, используете ли вы предварительно скомпилированные представления или что-то особенное, что может привести к частичной визуализации / выполнению ваших представлений в другом потоке!