在html属性中使用Enum值

时间:2013-04-02 16:06:56

标签: c# asp.net

可以请一些人告诉我为什么这不起作用,因为我输了,有点新的c#和来自php环境

<asp:ListItem Value="<%:(int)Student.Classes.Enum.Enum.gender.male%>">Male</asp:ListItem>

但如果我在外面使用这个确切的代码,它就可以完美地运作,例如

I am <%:(int)Student.Classes.Enum.Enum.gender.male%>

2 个答案:

答案 0 :(得分:1)

按照建议,您应该使用.NET MVC而不是webforms,因此您应该使用<asp:ListBox>而不是@Html.DropDownList。 点击此处了解详情: http://agilewarrior.wordpress.com/2012/12/13/how-to-simple-html-dropdownlistfor-mvc-net/

您的下拉列表/列表框的代码为:

@Html.DropDownList("StudentGender",
    new List<SelectListItem>() {  
        new SelectListItem(){ Text="Male",Value=Student.Classes.Enum.Enum.gender.male.ToString() },
        new SelectListItem(){ Text="Female",Value=Student.Classes.Enum.Enum.gender.female.ToString() }
    }, new { @class = "input-medium", size="6", multiple="multiple" } )

你仍然可以在.NET MVC中使用ASPX作为渲染引擎,在这种情况下你可以使用:

<%: Html.DropDownList(...) %>

答案 1 :(得分:0)

我对这种事情有点生疏,@ chris是对的,如果你的C#等开始进入MVC,ASP.Net将在5 - 10年内死掉。

无论如何,我假设你有类似的东西:

<asp:ListBox runat="server" Id="listBox">
</asp:ListBox>

你想要在代码中设置它:

public Page_Load()
{
    listBox.DataSource = Enum.GetValues(typeof(Student.Classes.Enum.Enum.gender));
    listBox.DataBind();
}