如何将枚举传递给 Html.RadioButtonFor 以获取 MVC 2 RC 2、C# 中的单选按钮列表 [英] How to pass an enum to Html.RadioButtonFor to get a list of radio buttons in MVC 2 RC 2, C#
本文介绍了如何将枚举传递给 Html.RadioButtonFor 以获取 MVC 2 RC 2、C# 中的单选按钮列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
I'm trying to render a radio button list in MVC 2 RC 2 (C#) using the following line:
<%= Html.RadioButtonFor(model => Enum.GetNames(typeof(DataCarry.ProtocolEnum)),
null) %>
but it's just giving me the following exception at runtime:
Templates can be used only with field access, property access, single-dimension array index, or single-parameter custom indexer expressions.
Is this possible and if so, how, please?
解决方案
You can create a template called "Enum" in /Views/Shared/EditorTemplates/Enum.ascx
With the following content:
<%= Html.DropDownList(string.Empty, Enum.GetNames(Model.GetType()).ToList().ConvertAll(e => new SelectListItem() { Text = e.ToString(), Value = e , Selected = e.Equals(Model.ToString())})) %>
This just enumerates the enum values.
You can call this with
Html.EditorFor(m => m.YourEnumProperty, "Enum" /*The name of the template*/)
这篇关于如何将枚举传递给 Html.RadioButtonFor 以获取 MVC 2 RC 2、C# 中的单选按钮列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文