ASP.Net Web开发基础 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

验证控件

Validation 服务器控件

对于web 程序员,如何对用户输入的数据进行验证一直是件繁琐的事情。ASP.NET提供了Validation服务器控件,用于验证用户输入,如果用户输入没有通过验证,将向用户显示一条错误消息。

常见的验证控件和其功能如下:

  • RequiredFieldValidator控件:防止用户输入空值
  • CompareValidator控件:与给定值进行比较
  • RangeValidator控件: 检查控件的值是否在给定的有效范围内
  • CustomValidator控件: 按照用户自己定制校验逻辑函数进行验证
  • RegularExpressValidator控件:使用正则表达式验证用户输入的数据是否符合预定义的格式
  • ValidationSummary控件:汇总页面上上所有验证控件的错误信息。

创建 Validation 服务器控件的语法一般如下:

其中ControlToValidate指定需要绑定验证的控件idErrorMessage预置验证失败时提示信息。对应不同的验证控件,使用中需要其他属性来指定验证条件,如下面的例子:

<asp:CompareValidator id="txtPwdValidator" 
    ControlToValidate="txtPwd1"
    ControlToCompare="txtPwd2"    
    Type="String"
    Operator="Equal"
    ErrorMessage="<b>两次输入的密码不一致,请检查!"
    Display="Dynamic"
    runat="server" />

上面的比较验证控件,验证txtPwd1 和 txtPwd2 中两次的密码输入是否一致;

<asp:RangeValidator id="txtAgeValidator" 
    ControlToValidate="txtAge"
    MinimumValue="0"
    MaximumValue="150"
    Type="Integer"
    ErrorMessage="年龄输入错误,请检查!"
    Display="Dynamic"
    runat="server" />

上面的有效范围验证控件对输入的年龄进行检查,如果年龄不在1~150范围之类,就提示错误。

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
runat="server" ControlToValidate="TextBox6" ErrorMessage="EMail地址格式错误"
ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
</asp:RegularExpressionValidator>

正则表达式验证控件,例子中通过正则表达式来验证输入的是否为正确的EMail 格式。

<asp:CustomValidator ID="CustomValidator1" runat="server"
ErrorMessage="CustomValidator" onservervalidate="CustomValidator1_ServerValidate" >
</asp:CustomValidator>

定制验证控件,例子中的验证将通过服务器端的方法 _CustomValidator1ServerValidate来进行,用户可以自己定制自己的验证策略。

ValidationSummary控件一般作为提示控件使用,它可以汇总页面上上所有验证控件的错误信息,然后在页面上进行输出提示。

WebForm3.aspx、WebForm3.aspx.cs是一个比较完整的用户注册验证的实例,查看代码运行程序,学习验证控件的使用。