C# 从MVC2中的枚举获取单选按钮

C# 从MVC2中的枚举获取单选按钮,c#,asp.net-mvc,C#,Asp.net Mvc,我需要在MVC2应用程序中使用枚举来呈现单选按钮 有人能帮我解决这个问题吗 感谢分享您的智慧。您需要使用GetNames函数: <% foreach (string name in Enum.GetNames(typeof(EnumType))) { %> <input type="radio" value="<%=name %>" name="instanceName"/>

我需要在MVC2应用程序中使用枚举来呈现单选按钮

有人能帮我解决这个问题吗


感谢分享您的智慧。

您需要使用GetNames函数:

<% foreach (string name in Enum.GetNames(typeof(EnumType)))
           {
               %>
                <input type="radio" value="<%=name %>" name="instanceName"/>
               <%

           } %>

然后在服务器端,您可以使用Enum.Parse函数将字符串解析回Enum

更新


Jace正确地指出,默认模型绑定器将为您将字符串映射到枚举。

您需要使用GetNames函数:

<% foreach (string name in Enum.GetNames(typeof(EnumType)))
           {
               %>
                <input type="radio" value="<%=name %>" name="instanceName"/>
               <%

           } %>

然后在服务器端,您可以使用Enum.Parse函数将字符串解析回Enum

更新


Jace说默认模型绑定器将为您将字符串映射到枚举是正确的。

我认为您希望使用反射。获取枚举的所有成员,并为每个成员创建一个输入元素,但需要知道的是,下面的代码段使用反射列出枚举中的所有元素

    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+"\"/>");
        }
公共枚举JuiceTypes
{
苹果,
橙色
菠萝,
桃,
蜂蜜茶,
西红柿
}
string[]juiceTypes=Enum.GetNames(typeof(juiceTypes));
foreach(果汁中的串汁)
{
控制台。WriteLine(果汁);

//在MVC中,您需要使用Response.WriteLine(“我认为您需要使用反射。您获得枚举的所有成员,并为每个成员创建一个输入元素,但您需要知道的是,下面的代码段使用反射列出枚举中的所有元素

    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+"\"/>");
        }
公共枚举JuiceTypes
{
苹果,
橙色
菠萝,
桃,
蜂蜜茶,
西红柿
}
string[]juiceTypes=Enum.GetNames(typeof(juiceTypes));
foreach(果汁中的串汁)
{
控制台。WriteLine(果汁);

//在MVC中,您需要使用Response.WriteLine(“感谢Richard的快速回复。MVC中的默认模型绑定可以将值解析回Enum。您不需要在服务器上调用Enum.parse。感谢Richard的快速回复。MVC中的默认模型绑定可以将值解析回Enum。您不需要在服务器上调用Enum.parse。@linkerro:我不擅长MVC但我尝试使用RadioButton,但它仅适用于单个值,现在我尝试创建自己的扩展以使用enum绘制单选按钮。@LinkError:我不擅长MVC,但尝试使用RadioButton,但它仅适用于单个值,现在我尝试创建自己的扩展以使用enum绘制单选按钮。