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