【ASP.NET】验证控件

简介:
	在软件开发中,验证输入信息是否正确,这是必不可少的一项工作。就拿我们做过的机房收费系统来说,在登录的时候,我们需要对用户名和用户密码进行验证,判断是否为空,判断输入字符是否合理等等。这些工作,我们之前都需要编写一段又一段代码,依次进行验证。在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视频中验证控件的学习,将验证控件与文本框控件绑定,这样方便了我们很多,以后在编写程序的时候就可以考虑用上了,也算是站在巨人的肩膀上一点点提升。
目录
相关文章
|
1月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
36 8
|
15天前
|
开发框架 JavaScript 前端开发
|
4月前
|
SQL 开发框架 JavaScript
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
分享33个ASP.NET电子商务源码和40个ASP.NET控件组件源码,总有一款适合您
69 0
|
4月前
|
SQL 开发框架 前端开发
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
ASP.NET WEB项目中GridView与Repeater数据绑定控件的用法
71 0
|
4月前
|
开发框架 .NET
Asp.Net就业课堂之模板控件
Asp.Net就业课堂之模板控件
60 1
|
4月前
|
开发框架 .NET 数据安全/隐私保护
Asp.Net第二章服务器端控件
Asp.Net第二章服务器端控件
46 0
|
4月前
|
开发框架 JavaScript .NET
Asp.Net就业课之三验证控件
Asp.Net就业课之三验证控件
63 0
|
开发框架 JavaScript .NET
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...(续)
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...(续)
121 0
|
开发框架 JavaScript 前端开发
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...
Asp.net 控件用法汇总-RadioButtonList、DropDownList、button、Checkbox...
82 0
|
开发框架 .NET C++
【asp.net】控件
【asp.net】控件
88 0