第2章 验证控件

内容纲要

2.1 数据验证控件 

2.1.1 数据验证的方式 

数据验证有 3 种方式 

  • 后端代码验证:需要将数据提交给服务器来验证
  • JavaScript 验证:无须服务器参与,但有潜在漏洞
  • 服务器验证控件:弥补前两种输入验证的缺陷

2.1.2 常用的验证控件 

ASP.NET 提供了 5 种验证控件和 1 个摘要控件 

在Visual Studio 2017 中,验证控件可以在“工具箱”的“验证”栏中找到

2.2 非空和比较验证控件 

2.2.1 非空验证控件 

RequiredFieldValidator 控件要求用户在页面上输入必填的内容,常用于文本框“不能为空”的验证。该控件常与其他验证控件一同实现有效性验证

RequiredFieldValidator 控件的常用属性

  • ControlToValidate :要验证的控件的 ID(所有验证控件都有该属性)
  • Text  :验证出错时的提示(所有验证控件都有该属性)
  • ErrorMessage :提交给汇总控件的错误信息。如果 Text 属性为空,则验证出错,将显示该信息,所有验证控件都有该属性

登录页面中,对用户名对应控件和密码对应控件进行非空验证

示例:

 用户名<asp:TextBox ID="txtUserName" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="txtUserName" ErrorMessage="请输入用户名" ForeColor="Red"></asp:RequiredFieldValidator>

 密码<asp:TextBox ID="txtPwd" runat="server" TextMode="Password">
</asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="txtPwd" ErrorMessage="请输入密码" ForeColor="Red"></asp:RequiredFieldValidator>
<div><asp:Label ID="lblMessage" runat="server" Text=""></asp:Label></div>
<div><asp:Button ID="btnLogin" Text=" 登录 " runat="server"/></div>

2.2.2 比较验证控件 

 CompareValidator 控件用于执行数据类型检查,或比较一个值和另一个值,以确定这两个值是否与比较运算符指定的关系相匹配 

CompareValidator控件的常用属性 

  • ControlToValidate:要验证的控件的 ID(所有验证控件都有该属性)
  • ControlToCompare:用于与要验证的控件进行比较的控件的 ID 
  • Type  :设置比较类型(如字符串、整型等),不同类型的比较会出错
  • Operator :设置比较运算符,如等于(Equal)、大于等于(GreaterThanEgual)、小于等于(LessThanEqual)、大于(GreaterThan)和小于(LessThan)等。默认设置为等于 
  • ValueToCompare:用于比较的值 

注册页面中,使用 CompareValidator 控件验证两次密码输入的值是否相同 

示例:

用户名 <asp:TextBox ID="txtUserName" runat="server" Width="150px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" 
        ControlToValidate="txtUserName" ErrorMessage=" 请输入用户名 " 
        ForeColor="Red"></asp:RequiredFieldValidator>
密码<asp:TextBox ID="txtPwd" runat="server"  TextMode="Password"  width="150px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" 
        ControlToValidate="txtPwd" ErrorMessage=" 请输入密码 " ForeColor="Red">
</asp:RequiredFieldValidator>
确认密码<asp:TextBox  ID="txtRePwd" runat="server"  TextMode="Password"    width="150px"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" 
        ControlToValidate="txtRePwd" ErrorMessage=" 请再次输入密码 " 
        ForeColor="Red"></asp:RequiredFieldValidator>
<asp:CompareValidator ID="CompareValidator1" runat="server" 
        ControlToCompare="txtPwd" ControlToValidate="txtRePwd" ErrorMessage="两次密码输入不一致 " ForeColor="Red"></asp:CompareValidator>

2.3 范围和正则表达式验证控件 

2.3.1 范围验证控件 

RangeValidator控件用于检查输入的值是否在确定的最小值和最大值之间 

RangeValidator控件的常用属性 

  • ControlToValidate :要验证的控件的 ID(所有验证控件都有该属性)
  • MaximumValue  :范围的上界(最大值)
  • MinimumValue  :范围的下界(最小值) 
  • Type  :验证类型(字符串、整型、双精度、日期和货币 5 种) 

2.3.2 正则表达式验证控件 

ReqularExpressionValidator 控件用于检查用户的输入是否与预定义的正则表达式相匹配 

正则表达式是采用字符模式匹配字符串型数据的专用语法 

选择控件的 ReqularExpression 属性就可以打开正则表达式编辑器,然后选择所要使用的正则表达式 

提醒:

常见的正则表达式如下:

  • 非负数(正整数 +0):^\d+$
  • 正整数:^[0-9]*[1-9][0-9]*$
  • 匹配中文字符的正则表达式:[\u4e00-\u9fa5]
  • 匹配双字节字符(包括汉字在内):[^\x00-\xff]
  • 货币(非负数,要求小数点后有两位数字):\d+(\.\d=d)?
  • 货币(正数或负数):(-)?\d+(\.\d=d)? 

示例:

在上个示例中,添加电子邮箱,使用正则表达式验证电子邮箱

电子邮箱 <asp:TextBox ID="txtEmail" runat="server" width="150px"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" 
runat="server" ControlToValidate="txtEmail" ErrorMessage=" 邮箱格式不正确 " ForeColor="Red" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
</asp:RegularExpressionValidator>

2.4 自定义验证控件 

2.4.1 自定义验证控件的使用 

CustomValidator 控件用于执行自定义验证,例如,需要编写自定义代码,从数据库中检测用户名是否已被使用 

  • ControlToValidate :要验证的控件的 ID(所有验证控件都有该属性) 
  • ClientValidationFunction:设置客户端验证的脚本函数
  • ServerValidate(事件):服务器端验证的方法 

为注册页面添加用户名检查功能,以验证用户名是否已经存在

示例:

后端页面代码:
protected void IsUserNameExist(object source,ServerValidateEventArgs args)
{
  if(args.Value=="mst")
  {
    args.IsValid=false;
  }
  else
  {
    args.IsValid=true;
  }
}

2.4.2 错误汇总验证控件 

ValidationSummary 控件用于在页面上显示所有验证错误的摘要,它收集本页中所有验证控件的错误信息(ErrorMessage 属性),进行组织并统一显示 

ValidationSummary 控件只能以简单列表、段落或弹出框的形式显示错误信息 

  • ShowMessageBox  :是否显示弹出的提示消息
  • ShowSummary:是否显示该报告内容 

2.4.2 错误汇总验证控件 

可设置验证控件的 Text 属性为“*”,在验证提示时,验证控件的提示位置仅显示一个红色的“*”。另一种方式是在验证控件的标签中写入“*”

示例:

<asp:RequiredFieldVlidator ID="rfvUserName" runat="server" ErrorMessage=" 请输入用户名 " ControlToValidate="txtLoginId"> * </asp:RequiredFieldVlidator>

总结 :

  1. RequiredFieldValidator控件确保用户输入数据,即提供非空验证。该控件是最简单且常用的验证控件,常和其他验证控件一起实现有效性验证 
  2. CompareValidator控件用于验证用户输入的内容是否符合条件要求 
  3. RangeValidator控件用于范围检查。比如验证用户输入的年龄,要求输入0-100岁之间的正整数
  4. ReqularExpressionValidator是正则表达式的意思,正则表达式就是用某种模式去匹配一类字符串的一个特殊公式 
  5. CustomValidator控件用于自定义验证 
  6. ValidationSummary可用于汇总所有的错误报告 

给TA打赏
共{{data.count}}人
人已打赏
.NET

微服务业务流程

2022-8-19 12:07:19

.NET

创建 Docker Compose 文件

2022-8-19 16:45:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索