C# ASP.NET性别验证不起作用

C# ASP.NET性别验证不起作用,c#,asp.net,validation,webforms,C#,Asp.net,Validation,Webforms,好的,所以我希望能够验证是否选择了男/女,或者是否还没有选择。以下是我的代码: protected void checkGender() { var selectedGender = ddlGender.SelectedValue; if (selectedGender == "-1") { Label1.Text = "Please select your gender!"; }

好的,所以我希望能够验证是否选择了男/女,或者是否还没有选择。以下是我的代码:

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

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


请选择。。。
男性
女性

您可以使用
SelectedIndex

    var selectedGender = ddlGender.SelectedIndex;

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

您可以使用
SelectedIndex

    var selectedGender = ddlGender.SelectedIndex;

    if (selectedGender == 0)
    {
        Label1.Text = "Please select your gender!";
    }
    else
    {
        Label1.Text = "";
    }
我建议使用,而不是手动进行验证

<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>
//您也可以在Load事件中设置InitialValue
使用验证程序控件时,可以使用统一的
页面.IsValid
属性检查页面是否有效

一般来说,最好尽可能使用标准的ASP.NET验证控件,否则最终会产生一堆乱七八糟的代码,以后很难维护。

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

<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>
//您也可以在Load事件中设置InitialValue
使用验证程序控件时,可以使用统一的
页面.IsValid
属性检查页面是否有效


一般来说,最好尽可能使用标准的ASP.NET验证控件,否则您将得到一堆乱七八糟的代码,以后很难维护这些代码。

实际上,这非常有效!我有rfv,但想添加一些自定义验证,但这将更好地工作,我不认为有必要为我或任何人去写更多的代码比你不得不麻烦!谢谢@Alexander Manekovskiy这真是太棒了!我有rfv,但想添加一些自定义验证,但这将更好地工作,我不认为有必要为我或任何人去写更多的代码比你不得不麻烦!谢谢@Alexander Manekovskii我认为这是一个关于XY问题答案的好例子()。作者需要验证下拉框中的值,但未能验证,因此,作者没有指向标准asp.net验证控件等更规范的解决方案,而是获得了一个解决方案,当然解决了问题,但没有为未来提供良好的指导。所以我怀疑这个答案的价值。谢谢你的反馈,亚历山大,这两个答案真的帮助了我@AlexanderManekovskiy您有一个正确的观点,而ASP.NET确实有内置的工具来实现这一点。有时你不得不手工操作,尤其是当你需要更多的定制时。例如,如果OP希望显示消息框而不是标签。正如OP在他的文章中提到的,他想要一些定制的东西。我认为这是一个回答XY问题()的好例子。作者需要验证下拉框中的值,但未能验证,因此,作者没有指向标准asp.net验证控件等更规范的解决方案,而是获得了一个解决方案,当然解决了问题,但没有为未来提供良好的指导。所以我怀疑这个答案的价值。谢谢你的反馈,亚历山大,这两个答案真的帮助了我@AlexanderManekovskiy您有一个正确的观点,而ASP.NET确实有内置的工具来实现这一点。有时你不得不手工操作,尤其是当你需要更多的定制时。例如,如果OP希望显示消息框而不是标签。正如OP在他的文章中提到的,他想要一些定制的东西。