C# 为什么不是';我的RangeValidator不工作吗?

C# 为什么不是';我的RangeValidator不工作吗?,c#,asp.net,visual-studio,validation,controls,C#,Asp.net,Visual Studio,Validation,Controls,我不止一次成功地使用了一个验证器,但经过一些编程后,我的验证器不起作用。也许我不知道为同一个控件定义两个验证器,但它也不适用于一个控件中的一个验证器。下面是我的两个代码示例: 示例1:用户名的一个必需字段验证器和一个“最大值”验证器: <asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server" ControlToValidate="Us

我不止一次成功地使用了一个验证器,但经过一些编程后,我的验证器不起作用。也许我不知道为同一个控件定义两个验证器,但它也不适用于一个控件中的一个验证器。下面是我的两个代码示例:

示例1:用户名的一个必需字段验证器和一个“最大值”验证器:

<asp:RequiredFieldValidator id="UsernameRequiredValidator" runat="server"
                                  ControlToValidate="UserNameTextbox" ForeColor="red"
                                  Display="Dynamic"  ErrorMessage="Required" />

<asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="UsernameTextbox"  MinimumValue="1" MaximumValue="20"  ForeColor="red"  
    Display="Dynamic"   ErrorMessage="Name must contain maximum 20 characters"></asp:RangeValidator>

示例2:roadaddress(字符串)的一个“最大值”验证器:



我认为问题可能出在display属性或causesvalidation属性中,我没有使用它…

这不是
RangeValidator
的用途。
RangeValidator
用于检查输入,以确保其在特定范围内,即确保数字在1到5之间,日期在特定范围内,等等

您需要的是一个
RegularExpressionValidator

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
    ControlToValidate="UserNameTextbox"
    ErrorMessage="Username must be between 1 and 50 characters" 
    ValidationExpression="^[a-zA-Z\s]{1,50}">
</asp:RegularExpressionValidator>


编辑:将表达式更新为
^[a-zA-Z\s]{1,50}

RangeValidator不验证输入中的字符数,而是”

通过在文本框上设置
MaxLength
属性,可以在没有验证器的情况下执行此操作,从而限制输入到文本框中的字符数

<asp:TextBox ID="UserNameTextbox" MaxLength="50" runat="server"></asp:TextBox>

没有AJAX没有UpdatePanel。。
<asp:TextBox ID="UserNameTextbox" MaxLength="50" runat="server"></asp:TextBox>