将整数转换为Enum

时间:2013-10-26 07:35:49

标签: asp.net-mvc asp.net-mvc-3 model-view-controller

我有这样的表

Id MagNo MagSeason MagYear
 1  1       0        2010
 2  2       1        2010
 3  3       2        2010
 4  4       3        2010
MagSeason 字段是这样的 Enum in MagazineDefault ViewModels

public enum Season
{       
    Spring=0,        
    Summer=1,        
    Autumn=2,
    Winter=3
}

在杂志列表视图中我怎么能拥有这个

  No   Season      MagYear
  1    Spring       2010
  2    Summer       2010
  3    Autumn       2010
  4    Winter       2010
我是这样投的

@Html.DisplayFor(modelItem =>(Cinema.ViewModel.Season) int.Parse(item.MagSeason))

但它给出了错误

"Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions."

我哪里弄错了?

谢谢

1 个答案:

答案 0 :(得分:0)

根据您的错误, DisplayFor 需要一个引用模型成员的表达式。 参数 DisplayFor 必须是属性或字段

你可以像

那样做
 MyEnum myEnum = (MyEnum)myInt;

另外,我还会使用Enum.IsDefined检查它是否在范围内:

if (Enum.IsDefined(typeof(MyEnum), myInt)) { 
   // it is defined
}