在 C# ASP.NET 中使用数组和验证控件

本文关键字:数组 验证 控件 ASP NET | 更新日期: 2023-09-27 18:32:03

我卡在这个作业上的部分是这样的:用户必须在"状态"字段(这是一个标准文本框)中输入状态缩写。但是,我应该确保在文本框中输入的字符是有效的状态缩写。因此,我创建了一个包含所有 50 个状态的数组,然后使用自定义验证器接受用户输入,并使用 for 循环将其与所有 50 个状态缩写进行比较。但是,我收到一个错误,说我还没有为事件(stateArrayCheck)创建定义,即使我知道我有!我在这个项目上还有很多工作要做,所以被困在任务的这一部分真的很令人沮丧。这是我的代码:

<html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script>
            void stateArrayCheck (Object source, ServerValidateEventArgs args)
            {
                string[] states = new string[49];
                states[0] = "AL";
                states[1] = "AK";
                ...
                states[48] = "WI";
                states[49] = "WY
                for(int i=0, i <= states.count, i++)
                {
                    if(valState.text != states[i])
                    {
                        Response.Write("Please enter a valid US state.";
                    }
                }
             }
        </script>
        <style>
            #name {
                float: left;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
            <div id ="name">
                <asp:Label id="lblFirstName" Text="First Name:" AssociatedControlID="txtFirstName" Runat="server" />
                <asp:TextBox id="txtFirstName" Runat="server" />
                <asp:RequiredFieldValidator id="reqFirstName" ControlToValidate="txtFirstName" Text="(Required)" Runat="server" />
            </div>
            <div>
                <asp:Label id="lastName" text="Last Name:" runat="server" />
                <asp:TextBox id="txtLastName" Runat="server" />
                <asp:RequiredFieldValidator id="reqLastName" ControlToValidate="txtLastName" Text="(Required)"Runat="server" />
                <asp:Label id="city" text="City:" runat="server" />
                <asp:TextBox id="txtCity" Runat="server" />
                <asp:RequiredFieldValidator id="reqCity" ControlToValidate="txtCity" Text="(Required)" Runat="server" />
                <asp:Label id="state" text="State:" runat="server" />
                <asp:TextBox id="valState" MaxLength="2" Width="20" Runat="server" />
                <asp:CustomValidator id="reqState" ControlToValidate="valState" OnServerValidate="stateArrayCheck" Text="(Required)" Runat="server" />
            </div>
        </form>
    </body>
</html>

我知道你可能不是验证器的忠实粉丝。我的老师也不是,但他们是这项作业所必需的。任何帮助将不胜感激。谢谢。

在 C# ASP.NET 中使用数组和验证控件

除非这是一个错字,否则最后一行缺少引号和分号

states[49] = "WY

您还声明了 49 个元素的数组,然后为其分配了 50 个元素。

string[] states = new string[49];

您应该声明 for 50,49 是第 50 个元素。

string[] states = new string[50];