我正在尝试使用以下行在MVC 2 RC 2(C#)中呈现单选按钮列表:
<%= Html.RadioButtonFor(model => Enum.GetNames(typeof(DataCarry.ProtocolEnum)),null) %>
但它只是在运行时给我以下异常:
Templates can be used only with field access,property access,single-dimension array index,or single-parameter custom indexer expressions.
这是可能的吗?如果是的话,请问怎么样?
解决方法
您可以在/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())})) %>
这只是枚举枚举值.
你可以用这个来打电话
Html.EditorFor(m => m.YourEnumProperty,"Enum" /*The name of the template*/)