2010-01-27 28 views

回答

5

How do you create a dropdownlist from an enum in ASP.NET MVC?

鑑於枚舉

public enum Status 
{ 
    Current = 1, 
    Pending = 2, 
    Cancelled = 3 
} 

而且擴展方法

public static SelectList ToSelectList<TEnum>(this TEnum enumObj) 
{ 
    var values = from TEnum e in Enum.GetValues(typeof(TEnum)) 
       select new { ID = e, Name = e.ToString() }; 

    return new SelectList(values, "Id", "Name", enumObj); 
} 

這允許你寫:

+0

有沒有辦法把選擇選項值屬性中的ID值,而不是文本? – Blankman 2010-01-27 18:38:16

+0

如果我理解你正確:'返回新的SelectList(值,「Id」,「Id」,enumObj);' – 2010-01-27 19:03:03

+0

試過,它仍然顯示選項值=電流,我想要值= 1 – Blankman 2010-01-27 19:08:55

2

其必然結果是羅伯特·哈維的回答,使用DescriptionAttribute將允許您處理有多個單詞枚舉值,例如:

public enum MyEnum { 
    [Description("Not Applicable")] 
    NotApplicable, 
    Yes, 
    No 
} 

如果存在的話,您可以抓住DescriptionAttribute值,然後使用descriptionAttributeText ?? enumMemberName作爲您的下拉菜單的顯示文字。