2015-03-12 4 views
0

Я пытаюсь написать веб-страницу, которая переключит цвет элемента в зависимости от уровня серьезности, связанного с этим элементом. Я использую перечисление System.Diagnostics.Tracing.EventLevel в DLL mscorlib.Razor не компилирует System.Diagnostics.Tracing.EventLevel

Когда я пытаюсь скомпилировать эту страницу, я получаю ошибку компиляции: ошибка CS0234: Тип или имя пространства имен «Трассировка» не существует в пространстве имен «System.Diagnostics» (вам не хватает ссылки на сборку?)

Сам код выглядит хорошо в файле .cshtml, intellisense может определять пространство имен и типы и завершает все правильно, он просто не будет компилироваться. Если я нажму F12 на тип в режиме бритвы, он приведет меня к информации DLL mscorlib. Проект веб-сайта не пропускает ссылку на mscorlib, потому что это библиотека по умолчанию, которую все такие проекты имеют по умолчанию (VS сказал мне об этом, когда я попытался «добавить» ее в папку ссылок проектов). Что я делаю не так?

@model NMCOnlineServices.Website.Areas.HEI.Models.EditRecordViewModel 
@using NMCOnlineServices.Website.Areas.HEI.Extensions 

@functions{ 
    public String GetColour(System.Diagnostics.Tracing.EventLevel level) 
    { 
     switch (level) 
     { 
      case System.Diagnostics.Tracing.EventLevel.Critical: 
      case System.Diagnostics.Tracing.EventLevel.Error: 
       return "Red"; 
      case System.Diagnostics.Tracing.EventLevel.Warning: 
       return "Amber"; 
      default: 
       return "Black"; 
     } 
    } 
} 
//More view stuff here, compiler bombs out on the GetColour() declaration 
+0

Я пытался обходным с помощью ToString() на модели и вместо этого используется строковая функция - когда я пытаюсь получить доступ к свойству Model, которое имеет тип EventLevel, теперь компилятор испускает CS0570: MytypeName..Severity 'не поддерживается языком – Gareth

ответ

0

Все проекты, которые использовались для целей .NET 4.5. Общий web.config проекта содержал следующую строку:

<compilation debug="true" targetFramework="4.0"> 

исправление было изменить его на:

<compilation debug="true" targetFramework="4.5">