【ASP.NET】验证控件

简介: <pre><span style="font-family:KaiTi_GB2312"><span style="font-size:18px; white-space:pre"> </span><span style="font-size:18px">在软件开发中,验证输入信息是否正确,这是必不可少的一项工作。就拿我们做过的机房收费系统来说,在登录的时候,我们需要对用户名和用户密码进行验
	在软件开发中,验证输入信息是否正确,这是必不可少的一项工作。就拿我们做过的机房收费系统来说,在登录的时候,我们需要对用户名和用户密码进行验证,判断是否为空,判断输入字符是否合理等等。这些工作,我们之前都需要编写一段又一段代码,依次进行验证。在ASP.NET中,学习到了验证控件,发现这些事情原来可以很容易就被解决的。
	这篇博客就将ASP.NET中5个验证控件总结一下,也是为了以后能够更加方便熟悉的使用它们。
(一)RequiredFieldValidator控件
	其功能是要求用户必须为ASP.NET网页上的某个指定控件提供信息,例如在登录界面下,要求用户名不能为空,此时就可以将该控件绑定到用户名文本框,当用户名为空时,该控件提示“用户名为空”的信息。
(二)CompareValidator控件
	其功能是验证某个输入控件里输入的信息是否满足实现设定的条件。例如在输入人的年龄时,输入的值必须大于0,此时就可以将该控件绑定到用于输入年龄文本框,并设置适当的条件来控制用户误输入小于0的数值。
(三)RangeValidator控件
	其功能是验证用户对某个文本框的输入是否在某个范围内,如输入的数值是否在某两个数值之间,输入的日期是否在某两个日期之间等。
(四)RegularExpressionValidator控件
	其功能是验证用户输入的数据是否符合规则表达式预定义的格式。如输入的数据是否符合身份证、电子邮件、电话号码等格式。规则表达式一般都是利用正则表达式来描述。
(五)CustomValidator控件
	其功能是能够调用程序开发人员在服务器端编写的自定义验证函数。
下面就以一个注册的实例,来对这些验证控件应用。
	前台是一个简单的用户注册页面,如下图:
		其中包含5个RequiredFieldVaildator控件验证每个文本框内容是否为空,一个RangeValidator控件验证输入年龄文本框内容是否在1-150之间,一个CompareValidator控件验证两次输入的密码是否一致,一个RegularExpressionValidator控件验证输入的电子邮件格式是否正确。
	设置好各个控件的ErrorMessage、ControlToValidate等属性后,我们可以从源代码中看到一个完整的HTML代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    
    </div>
        <p style="margin-left: 200px">
            用户注册</p>
        <p>
            <asp:Label ID="Label2" runat="server" Text="用户名:"></asp:Label>
 
            <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="TextBox6" ErrorMessage="用户名必填"></asp:RequiredFieldValidator>
        </p>
        <p>
            密码:   <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="密码必填"></asp:RequiredFieldValidator>
        </p>
        <p>
            重复密码:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" ErrorMessage="重复密码必填"></asp:RequiredFieldValidator>
 
            <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox2" ControlToValidate="TextBox3" ErrorMessage="两次密码输入不一致"></asp:CompareValidator>
        </p>
        <p>
            年龄:   <asp:TextBox ID="TextBox4" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="TextBox4" ErrorMessage="年龄必填"></asp:RequiredFieldValidator>
 
            <asp:RangeValidator ID="RangeValidator1" runat="server" ControlToValidate="TextBox4" ErrorMessage="年龄必须大于0小于120!" MaximumValue="120" MinimumValue="1" Type="Integer"></asp:RangeValidator>
        </p>
        <p>
            <asp:Label ID="Label1" runat="server" Text="电子邮件:"></asp:Label>
            <asp:TextBox ID="TextBox5" runat="server"></asp:TextBox>
            <asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" ControlToValidate="TextBox5" ErrorMessage="电子邮件必填"></asp:RequiredFieldValidator>
 <asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="TextBox5" ErrorMessage="邮件格式输入错误" ValidationExpression="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"></asp:RegularExpressionValidator>
        </p>
        <p>
             
            <asp:Button ID="Button1" runat="server" Text="注册" />
        </p>
    </form>
</body>
</html>

	这样点击注册按钮后,如果各个文本框不符合要求,便会有相应的提示信息。但第一次运行就遇到错误了,


	很常见的一个错误,在网上搜了搜很快就得到了答案,那是因为WebForm使用UnobtrusiveValidationMode来验证,所以可以设定不要使用UnobtrusiveValidationMode,如下,在Page_Load中设定,

protected void Page_Load(object sender, EventArgs e)
    {
        UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
    } 

	这样前台就显示了,如果各个文本框什么都不输入,各个验证控件都会提示“**为必填”,如下图:
	
	除了判断文本框内容是否为空,其他验证控件同样会判断输入的对应的内容是否符合要求,不符合要求的,也会提示对应的信息,如下图:
		所有文本框的内容都按正确的形式填写的话,就便不会有任何出错信息提示了,如下图:
		通过这样一个实例,对这些验证控件的使用也就掌握了。以前我们对文本框的输入内容需要写大量的代码一步一步进行验证,而通过ASP.NET视频中验证控件的学习,将验证控件与文本框控件绑定,这样方便了我们很多,以后在编写程序的时候就可以考虑用上了,也算是站在巨人的肩膀上一点点提升。
目录
相关文章
|
13天前
|
开发框架 JSON .NET
|
1月前
|
机器学习/深度学习 JSON 测试技术
CNN依旧能战:nnU-Net团队新研究揭示医学图像分割的验证误区,设定先进的验证标准与基线模型
在3D医学图像分割领域,尽管出现了多种新架构和方法,但大多未能超越2018年nnU-Net基准。研究发现,许多新方法的优越性未经严格验证,揭示了验证方法的不严谨性。作者通过系统基准测试评估了CNN、Transformer和Mamba等方法,强调了配置和硬件资源的重要性,并更新了nnU-Net基线以适应不同条件。论文呼吁加强科学验证,以确保真实性能提升。通过nnU-Net的变体和新方法的比较,显示经典CNN方法在某些情况下仍优于理论上的先进方法。研究提供了新的标准化基线模型,以促进更严谨的性能评估。
62 0
|
18天前
|
JSON 数据格式 微服务
.NET下 支持大小写不敏感的JSON Schema验证方法
有很多应用程序在验证JSON数据的时候用到了JSON Schema。 在微服务架构下,有时候各个微服务由于各种历史原因,它们所生成的数据对JSON Object属性名的大小写规则可能并不统一,它们需要消费的JSON数据的属性名可能需要大小写无关。 遗憾的是,目前的JSON Schema没有这方面的标准,标准中都是大小写敏感的。在类似上述情况下,这给使用JSON Schema进行数据验证造成了困难。
|
2月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
51 0
|
2月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
53 0
|
2月前
|
开发框架 .NET
Asp.Net就业课堂之模板控件
Asp.Net就业课堂之模板控件
51 1
|
2月前
|
JavaScript C#
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件
58 0
|
2月前
|
JavaScript Linux C#
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
【傻瓜级JS-DLL-WINCC-PLC交互】1.C#用windows窗体控件创建.net控件
91 0
|
2月前
|
开发框架 .NET 数据安全/隐私保护
Asp.Net第二章服务器端控件
Asp.Net第二章服务器端控件
37 0
|
2月前
|
开发框架 JavaScript .NET
Asp.Net就业课之三验证控件
Asp.Net就业课之三验证控件
51 0