如何在MVC3中的Razor页面上使用Enums?

我宣布了一个枚举:

public enum HeightTypes{ Tall, Short} 

现在我想在我的剃刀页面上使用它,如下所示:

 @if (Model.Meta.Height == HeightTypes.Tall) 

但是当我收到错误时会出现问题。 有什么方法可以告诉剃刀页面关于我的枚举?

您的枚举声明中有错误(删除尾随; ):

 public enum HeightTypes { Short = 0, Tall = 1 } 

然后以下测试应该工作:

 @if (Model.Meta.Height == HeightTypes.Tall) { } 

您只需要确保您的视图是强类型的,并且您已将定义了Height枚举的命名空间纳入范围:

 @using SomeAppName.Models @model SomeViewModel 

或者像这样引用枚举:

 @if (Model.Meta.Height == SomeAppName.Models.HeightTypes.Tall) { } 

但是为了避免在需要使用此枚举的所有剃刀视图中执行此操作,更容易在~/Views/web.config中的部分中声明它:

             

只是做一个从头到尾的例子:

C#CS

 namespace MyProject.Enums { public enum CurveBasis { Aggregates, Premium } } 

剃刀视图

 @using MyProject.Enums  

你没有具体说明exception,所以我这是一个命名空间问题。 加

 @using The.Namespace.Of.Your.Enum; 

在顶部。 如果要使用该命名空间,还可以指定在/Views/web.config自动添加的命名空间:

  ...    ...