在软件开发中,验证输入信息是否正确,这是不可缺少的一项工作。就拿我们做过的机房收费系统来说,在登录的时候,我们须要对username和用户password进行验证。推断是否为空,推断输入字符是否合理等等。这些工作,我们之前都须要编写一段又一段代码,依次进行验证。

在ASP.NET中。学习到了验证控件,发现这些事情原来能够非常easy就被解决的。

这篇博客就将ASP.NET中5个验证控件总结一下。也是为了以后能够更加方便熟悉的使用它们。

(一)RequiredFieldValidator控件
其功能是要求用户必须为ASP.NET网页上的某个指定控件提供信息,比如在登录界面下,要求username不能为空,此时就能够将该控件绑定到username文本框,当username为空时,该控件提示“username为空”的信息。 (二)CompareValidator控件
其功能是验证某个输入控件里输入的信息是否满足实现设定的条件。比如在输入人的年龄时,输入的值必须大于0,此时就能够将该控件绑定到用于输入年龄文本框,并设置适当的条件来控制用户误输入小于0的数值。
(三)RangeValidator控件
其功能是验证用户对某个文本框的输入是否在某个范围内,如输入的数值是否在某两个数值之间,输入的日期是否在某两个日期之间等。
(四)RegularExpressionValidator控件
其功能是验证用户输入的数据是否符合规则表达式提前定义的格式。 如输入的数据是否符合身份证、电子邮件、电话号码等格式。规则表达式一般都是利用正則表達式来描写叙述。 (五)CustomValidator控件
其功能是能够调用程序开发者在server端编写的自己定义验证函数。
以下就以一个注冊的实例,来对这些验证控件应用。
前台是一个简单的用户注冊页面,例如以下图:

当中包括5个RequiredFieldVaildator控件验证每一个文本框内容是否为空。一个RangeValidator控件验证输入年龄文本框内容是否在1-150之间,一个CompareValidator控件验证两次输入的password是否一致。一个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="username:"></asp:Label> <asp:TextBox ID="TextBox6" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator6" runat="server" ControlToValidate="TextBox6" ErrorMessage="username必填"></asp:RequiredFieldValidator>
</p>
<p>
password: <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator2" runat="server" ControlToValidate="TextBox2" ErrorMessage="password必填"></asp:RequiredFieldValidator>
</p>
<p>
反复password:<asp:TextBox ID="TextBox3" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator3" runat="server" ControlToValidate="TextBox3" ErrorMessage="反复password必填"></asp:RequiredFieldValidator> <asp:CompareValidator ID="CompareValidator1" runat="server" ControlToCompare="TextBox2" ControlToValidate="TextBox3" ErrorMessage="两次password输入不一致"></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>
	这样点击注冊button后,假设各个文本框不符合要求,便会有对应的提示信息。但第一次执行就遇到错误了,

	非经常见的一个错误。在网上搜了搜非常快就得到了答案,那是由于WebForm使用UnobtrusiveValidationMode来验证。所以能够设定不要使用UnobtrusiveValidationMode。例如以下,在Page_Load中设定,
protected void Page_Load(object sender, EventArgs e)
{
UnobtrusiveValidationMode = UnobtrusiveValidationMode.None;
}
	这样前台就显示了,假设各个文本框什么都不输入。各个验证控件都会提示“**为必填”,例如以下图:
	

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVfemhpdGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
	除了推断文本框内容是否为空,其它验证控件相同会推断输入的相应的内容是否符合要求,不符合要求的,也会提示相应的信息,例如以下图:

全部文本框的内容都按正确的形式填写的话。就便不会有不论什么出错信息提示了,例如以下图:
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVfemhpdGluZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">
通过这样一个实例。对这些验证控件的使用也就掌握了。曾经我们对文本框的输入内容须要写大量的代码一步一步进行验证。而通过ASP.NET视频中验证控件的学习,将验证控件与文本框控件绑定,这样方便了我们非常多。以后在编敲代码的时候就能够考虑用上了,也算是站在巨人的肩膀上一点点提升。

【ASP.NET】验证控件的更多相关文章

  1. ASP.Net 验证控件 RequiredFieldValidator

    使用 ASP.NET 验证控件可在网页上检查用户输入.有用于各种不同类型验证的控件,例如范围检查或模式匹配验证控件.每个验证控件都引用网页上其他位置的输入控件(服务器控件).当处理用户输入时(例如,当 ...

  2. ASP.NET验证控件详解

    现在ASP.NET,你不但可以轻松的实现对用户输入的验证,而且,还可以选择验证在服务器端进行还是在客户端进行,再也不必考虑那么多了,程序员们可以将重要精力放在主程序的设计上了. ASP.NET公有六种 ...

  3. 为人们服务的asp.net 验证控件

    ASP.NET是微软推出的WEB开发工具,他有很强大的功能,今天看视频讲到验证控件这一部分,真的感受到了微软全心全意为人民服务了.越来越佩服微软了,人家都设计出来了,咱们一定要会用才可以啊,不然太…. ...

  4. ASP.NET验证控件二

    RequiredFieldValidator 验证控件 页面布局: <div> <h1>RequiredFieldValidator 验证控件</h1>   用户名 ...

  5. ASP.NET验证控件一

    为了更好地创建交互式Web应用程序.加强应用程序安全性,程序开发人员应该对用户输入的内容进行验证. ASP.NET提供了一系列输入验证控件,使用这些控件用户可以很方便地实现输入验证. ASP.NET还 ...

  6. ASP.NET验证控件应用实例与详解。

    ASP.NET公有六种验证控件,分别如下:  控件名      功能描叙 1RequiredFieldValidator(必须字段验证)  用于检查是否有输入值 2CompareValidator(比 ...

  7. ASP.Net 验证控件 RegularExpressionValidator

    定义和用法 RegularExpressionValidator 控件用于验证输入值是否匹配指定的模式. 注释:除非浏览器不支持客户端验证或 EnableClientScript 属性被设置为 fal ...

  8. ASP.Net 验证控件 RangeValidator

    RangeValidator 定义和用法 RangeValidator 控件用于检测用户输入的值是否介于两个值之间.可以对不同类型的值进行比较,比如数字.日期以及字符. 注释:如果输入控件为空,验证不 ...

  9. ASP.NET_验证控件(class0620)

    为什么使用验证控件 当需要让用户输入数据时,用户有可能输入不符合我们程序逻辑要求的信息,所以我们要对输入进行验证. 客户端验证(用户体验,减少服务器端压力) 服务器端验证(防止恶意攻击,客户端js很容 ...

  10. ASP.NET验证控件

    在此过程中房间的收费制度时,.为了验证文本框是否为空.用户存在.合法等等.我们都要单独写代码.学习了ASP.NET的验证控件,省了非常多事. ASP.NET能够轻松实现对用户输入的验证. 让我们好好回 ...

随机推荐

  1. Android ListView条目全选功能,不用checkbox实现!

    大家好,翻了翻曾经的笔记,发现了一个我特别标记的功能,那就是ListView全选功能,顿时想起了我那个时候苦逼的生涯,因为我大学机械出身,大学毕业了都不知道什么叫代码,在58干了一段销售.实在是干不下 ...

  2. [Boost基础]并发编程——asio网络库——异步socket处理

    异步服务器端 #include <conio.h> #include <iostream> using namespace std; #include <boost/as ...

  3. Android漫游记(4)---.so文件动态调试一例

    Android平台的动态调试一直以来是个困扰我等Coder的头疼问题,特别是对于本地的动态调试支持.能够说是"弱智"级别的,不知道Google的新版NDK和新出的Android S ...

  4. iOS技术开发-人机交互指南之UI设计基础:iOS App Anatomy

    第二篇更多的是从技术的角度对iOS界面组成原理进行了简单的解析,篇幅很短,可稍作了解:更多关于iOS开发入门的内容可参考“设计师应该了解的iOS应用开发基础知识”一文.另外,非常感谢各位朋友在微博上的 ...

  5. QString ini ;转义符

    ini如果value字符串中存在:,通过双引号即可转义 [a] b=sdc";"gf

  6. 一个很简单的php留言板。。。。搭建在sae上的。。。

    我在sae上搭建了一个个人简历的页面: 有兴趣的可以访问  http://671coder.sinaapp.com/ 在做下面一个简单的留言板的时候,卡了我很久,虽然完全没用过php..但是还是最后勉 ...

  7. 怎样写Makefile文件(C语言部分)

    本文摘抄自"跟我一起写Makefile ",只是原文中我自己感觉比较精要的一部分,并且只针对C语言,使用GCC编译器. 原文请看这里:http://wiki.ubuntu.org. ...

  8. js / ajax 成功提交后怎么跳转到另外一个页面?

    把success那段改成 success : function (r) { if ( r.status == 'error' ){ alert(msg[r.msgno]); } else if (r. ...

  9. rac各节点实例需设置为相同的一些参数

    RAC Parameters That Require Identical Settings • ACTIVE_INSTANCE_COUNT • ARCHIVE_LAG_TARGET • COMPAT ...

  10. An example usage of an encryption algorithm (AES, in this case) is:

    pycrypto 2.6.1 : Python Package Index An example usage of an encryption algorithm (AES, in this case ...