我需要在MVC2应用程序中使用枚举来渲染单选按钮。
任何人都可以帮我解决这个问题。
感谢分享你的智慧。
答案 0 :(得分:5)
您需要使用GetNames函数:
<% foreach (string name in Enum.GetNames(typeof(EnumType)))
{
%>
<input type="radio" value="<%=name %>" name="instanceName"/>
<%
} %>
然后在服务器端,您可以使用Enum.Parse函数将字符串解析回枚举。
更新
Jace评论默认模型绑定器会将字符串映射到您的枚举是正确的。
答案 1 :(得分:1)
我想你想用反射。您将获得枚举的所有成员,并为每个成员创建一个输入元素,但您需要知道的是,以下代码段使用反射来列出枚举中的所有元素。
public enum JuiceTypes
{
Apple,
Orange,
Pineapple,
Peach,
HoneyTea,
Tomato
}
string[] juiceTypes = Enum.GetNames(typeof(JuiceTypes));
foreach (string juice in juiceTypes)
{
Console.WriteLine(juice);
//in MVC you need to use Response.WriteLine("<input type=\"radio\" value=\"+juice+"\"/>");
}