2016-09-16 159 views
0

我有一個枚舉,我可以顯示在EnumDropDownListFor沒有問題,並保存枚舉。現在我正在嘗試從我的記錄中獲取該值併爲其顯示DataAnnotation。我一直在嘗試Enum.GetName但是遇到了一些問題。Enum.GetName顯示註釋

我枚舉 -

public enum LandOwner 
    { 
     [Display(Name = "Yes")] 
     Y =1 , 
     [Display(Name = "No")] 
     N =2, 
     [Display(Name = "No Nearby Land Owner")] 
     O =3 
    } 

    public LandOwner ownerDropDown { get; set; } 

當我保存記錄保存的Y,N或O

Enum.GetName - 在Model.LandOwnersNotified是Y,N,或O

@Enum.GetName(typeof(OpenBurn.Models.BurnPile.LandOwner), Model.LandownersNotified) 

但是,當我運行此我得到以下錯誤 -

傳遞必須是枚舉鹼或基礎類型的枚舉,如一個Int32值\ r \ n參數名稱:值

當我改變Enum.GetName到

@Enum.GetName(typeof(OpenBurn.Models.BurnPile.LandOwner), 1) 

我知道Enum.GetName的後期部分正在尋找一個整數,但不是Model.LandownersNotified與枚舉組合提供的?

我會收到一切的Y.我從來沒有收到[Display(name="...")]

+0

@ Html.DisplayFor()不適合你嗎? – dwbartz

+0

@ Html.DisplayFor()不會給我我的枚舉選項。 –

回答

0

不能說我明白你想要做什麼。但@Enum.GetName旨在返回枚舉值的名稱。所以你不能通過枚舉。

Model.LandownersNotified.ToString() -> Y,N,O 
(int)Model.LandownersNotified -> 1,2,3 
+0

你會使用'@ Html.DisplayFor'嗎? –

+0

當數據庫爲LandOwnersNotified記錄了'Y'時,我想在刪除,編輯,詳細信息和索引視圖中顯示'是'。 –