如何在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
自动添加的命名空间:
... ...