2010-02-08 19 views
8

我試圖在MVC 2 RC 2(C#)中使用以下行呈現單選按鈕列表:如何將枚舉傳遞給Html.RadioButtonFor獲取MVC 2 RC 2中單選按鈕的列表C#

<%= Html.RadioButtonFor(model => Enum.GetNames(typeof(DataCarry.ProtocolEnum)), 
         null) %> 

,但它只是讓我有以下異常在運行時:

模板只能與現場訪問,訪問屬性,一維數組的索引,或單參數自定義索引表達式中使用。

這是可能的,如果是這樣,請問怎麼樣?

回答

6

您可以創建一個在/Views/Shared/EditorTemplates/Enum.ascx

稱爲 「枚舉」

包含以下內容的模板:

<%= Html.DropDownList(string.Empty, Enum.GetNames(Model.GetType()).ToList().ConvertAll(e => new SelectListItem() { Text = e.ToString(), Value = e , Selected = e.Equals(Model.ToString())})) %> 

這只是列舉枚舉值。

您可以調用此方法,

Html.EditorFor(m => m.YourEnumProperty, "Enum" /*The name of the template*/) 
+0

當然,你可以從DropDownList的改變 - 選擇列表的產生是主要的部分。 :-) – amarsuperstar 2010-02-09 16:21:06

+1

我在'Html.RadioButtonFor'上看不到相應的方法。看來輔助方法只取一個值。有沒有其他方法可以做OP的要求? – 2010-08-23 17:14:29

+0

-1'RadioButton'和'RadioButtonFor'不帶'SelectListItem's。 – Stijn 2013-08-09 08:14:28