Razor没有编译System.Diagnostics.Tracing.EventLevel

时间:2015-03-12 15:50:01

标签: c# asp.net-mvc asp.net-mvc-4 razor

我正在尝试编写一个网页,根据与该项目相关联的严重性级别切换项目的颜色。我正在使用mscorlib DLL中的System.Diagnostics.Tracing.EventLevel枚举。

当我尝试编译此页面时,出现编译错误: 错误CS0234:命名空间“System.Diagnostics”中不存在类型或命名空间名称“Tracing”(您是否缺少程序集引用?)

代码本身在.cshtml文件中看起来很好,intellisense可以检测命名空间和类型并适当地完成所有操作,它只是不会编译。如果我在剃刀视图中的类型上按F12,它会转到mscorlib DLL信息。网站项目没有错过对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 

1 个答案:

答案 0 :(得分:0)

所有正在使用的项目都针对.NET 4.5。项目的整体web.config包含以下行:

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

修复方法是将其更改为:

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