性别的ASP.NET验证不起作用

时间:2014-03-09 17:52:55

标签: c# asp.net validation webforms

好的,所以我希望能够验证是否已经选择了男/女,或者是否未被选中。这是我的代码:

protected void checkGender()
    {
        var selectedGender = ddlGender.SelectedValue;

        if (selectedGender == "-1")
        {
            Label1.Text = "Please select your gender!";
        }
        else
        {
            Label1.Text = "";
        }
    }

<asp:DropDownList ID="ddlGender" runat="server">
  <asp:ListItem Value="-1">Please select...</asp:ListItem>
  <asp:ListItem Value="Male">Male</asp:ListItem>
  <asp:ListItem Value="Female">Female</asp:ListItem>
</asp:DropDownList>

2 个答案:

答案 0 :(得分:2)

您可以使用SelectedIndex

    var selectedGender = ddlGender.SelectedIndex;

    if (selectedGender == 0)
    {
        Label1.Text = "Please select your gender!";
    }
    else
    {
        Label1.Text = "";
    }

答案 1 :(得分:2)

我建议使用RequiredFieldValidator而不是手动进行验证。

<asp:RequiredFieldValidator ID="rfvGender" runat="server"
     ControlToValidate="ddlGender"
     ErrorMessage="Please select your gender!"
     InitialValue="-1"> // Alternativaly you can set the InitialValue in Load event 
</asp:RequiredFieldValidator>

使用验证程序控件时,您可以使用统一的Page.IsValid属性来检查您的页面是否有效。

一般情况下,最好尽可能使用标准的ASP.NET验证控件,否则最终将会出现一堆乱码,这些代码将来很难维护。