2012-09-04 139 views
0

我編輯我的模型@ Html.EditorFor(M =>型號....編輯器模式

我需要強制的特性之一是admin或用戶,

什麼屬性可以把我在我的模型屬性強行下拉框中出現這些2個選項?

回答

0

創建以下擴展枚舉

public static class EnumExtensions 
{ 
    public static IEnumerable<SelectListItem> ToSelectListItems<TEnum>(this TEnum enumObj) 
    { 
     var values = from TEnum e in Enum.GetValues(typeof(TEnum)) 
        select new SelectListItem() { Value = e.ToString(), Text = Enum.GetName(typeof(TEnum), e) }; 

     return values; 
    } 
} 

然後添加以下的自定義編輯模板(U次升氣管/共享/ EditorTemplates)

@model Enum 

@Html.DropDownListFor(m => m, Model.ToSelectListItems()) 

然後,讓你的財產與用戶和管理員作爲選項的枚舉。

您還可以創建一個自定義屬性來爲枚舉值添加顯示名稱(以處理空格等)。

+0

你如何製作自定義屬性? – user1588670

+0

@ user1588670 - 您不需要爲您的實體創建自定義屬性 - 只需使用上面的枚舉,上面的代碼將爲枚舉選項創建一個下拉列表。上面提到的自定義屬性是指枚舉值的自定義屬性,以防萬一你想改變它們的顯示方式。 –

+0

雖然你是對的,但你沒有回答我的問題。還有其他原因我想使用註釋。我不想更改控制器或正在傳遞的模型,我只是想將註釋添加到模型中。 – user1588670