2013-10-26 136 views
0

我有表像這樣鑄造的整數枚舉

Id MagNo MagSeason MagYear 
1 1  0  2010 
2 2  1  2010 
3 3  2  2010 
4 4  3  2010 

MagSeason場是的ViewModels的的枚舉MagazineDefault這樣

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." 

我在哪裏出錯了?

謝謝

回答

0

根據你的錯誤,DisplayFor希望引用您的模型成員的表達。該參數DisplayFor必須是屬性或字段

你可以簡單地做它像

MyEnum myEnum = (MyEnum)myInt; 

Additionaly,我也用Enum.IsDefined檢查它是否在範圍內:

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

我有(Cinema.ViewModel.Season)item.MagSeason,Cinema.ViewModel.Season是Enum,那麼爲什麼我會收到錯誤信息? – nnmmss

+0

@nnmmss,DisplayFor需要一個引用模型成員的表達式。嘗試'@ Html.Display(「東西」,(Cinema.ViewModel.Season)item.MagSeason)' – Satpal

+0

hwo我應該那樣做?對不起,我剛剛MVC – nnmmss