如何将枚举传递给Html.RadioButtonFor以获取MVC 2 RC 2,C#中的单选按钮列表

Mat*_*t W 9 asp.net-mvc enums radio-button asp.net-mvc-2

我正在尝试使用以下行在MVC 2 RC 2(C#)中呈现单选按钮列表:

<%= Html.RadioButtonFor(model => Enum.GetNames(typeof(DataCarry.ProtocolEnum)),
                        null) %>
Run Code Online (Sandbox Code Playgroud)

但它只是在运行时给我以下异常:

模板只能用于字段访问,属性访问,单维数组索引或单参数自定义索引器表达式.

这是可能的吗?如果是的话,请问怎么样?

ama*_*tar 6

您可以在/Views/Shared/EditorTemplates/Enum.ascx中创建名为"Enum"的模板

具有以下内容:

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

这只是枚举枚举值.

你可以用这个来打电话

Html.EditorFor(m => m.YourEnumProperty, "Enum" /*The name of the template*/)
Run Code Online (Sandbox Code Playgroud)


Rai*_*oad 1

尝试使用GetValues代替