📜  ASP.NET-验证器

📅  最后修改于: 2020-11-21 05:46:02             🧑  作者: Mango


ASP.NET验证控件可验证用户输入数据,以确保不会存储无用,未经身份验证或矛盾的数据。

ASP.NET提供以下验证控件:

  • RequiredFieldValidator
  • RangeValidator
  • CompareValidator
  • RegularExpressionValidator
  • CustomValidator
  • 验证摘要

BaseValidator类

验证控件类从BaseValidator类继承,因此它们继承其属性和方法。因此,有助于查看此基类的属性和方法,这对于所有验证控件都是通用的:

Members Description
ControlToValidate Indicates the input control to validate.
Display Indicates how the error message is shown.
EnableClientScript Indicates whether client side validation will take.
Enabled Enables or disables the validator.
ErrorMessage Indicates error string.
Text Error text to be shown if validation fails.
IsValid Indicates whether the value of the control is valid.
SetFocusOnError It indicates whether in case of an invalid control, the focus should switch to the related input control.
ValidationGroup The logical group of multiple validators, where this control belongs.
Validate() This method revalidates the control and updates the IsValid property.

RequiredFieldValidator控件

RequiredFieldValidator控件确保必填字段不为空。通常将其绑定到文本框以强制输入到文本框中。

该控件的语法如下:


   

RangeValidator控制

RangeValidator控件验证输入值是否落在预定范围内。

它具有三个特定的属性:

Properties Description
Type It defines the type of the data. The available values are: Currency, Date, Double, Integer, and String.
MinimumValue It specifies the minimum value of the range.
MaximumValue It specifies the maximum value of the range.

该控件的语法如下:


   

CompareValidator控件

CompareValidator控件将一个控件中的值与固定值或另一控件中的值进行比较。

它具有以下特定属性:

Properties Description
Type It specifies the data type.
ControlToCompare It specifies the value of the input control to compare with.
ValueToCompare It specifies the constant value to compare with.
Operator It specifies the comparison operator, the available values are: Equal, NotEqual, GreaterThan, GreaterThanEqual, LessThan, LessThanEqual, and DataTypeCheck.

控件的基本语法如下:


   

RegularExpressionValidator

RegularExpressionValidator允许通过与正则表达式的模式进行匹配来验证输入文本。正则表达式在ValidationExpression属性中设置。

下表总结了正则表达式的常用语法构造:

Character Escapes Description
\b Matches a backspace.
\t Matches a tab.
\r Matches a carriage return.
\v Matches a vertical tab.
\f Matches a form feed.
\n Matches a new line.
\ Escape character.

除了单个字符匹配之外,还可以指定可以匹配的一类字符,称为元字符。

Metacharacters Description
. Matches any character except \n.
[abcd] Matches any character in the set.
[^abcd] Excludes any character in the set.
[2-7a-mA-M] Matches any character specified in the range.
\w Matches any alphanumeric character and underscore.
\W Matches any non-word character.
\s Matches whitespace characters like, space, tab, new line etc.
\S Matches any non-whitespace character.
\d Matches any decimal character.
\D Matches any non-decimal character.

可以添加量词以指定出现字符的次数。

Quantifier Description
* Zero or more matches.
+ One or more matches.
? Zero or one matches.
{N} N matches.
{N,} N or more matches.
{N,M} Between N and M matches.

该控件的语法如下:


   

CustomValidator

CustomValidator控件允许为客户端和服务器端验证编写应用程序特定的自定义验证例程。

客户端验证通过ClientValidationFunction属性完成。客户端验证例程应使用浏览器可以理解的脚本语言编写,例如JavaScript或VBScript。

必须从控件的ServerValidate事件处理程序中调用服务器端验证例程。服务器端验证例程应使用任何.Net语言编写,例如C#或VB.Net。

该控件的基本语法如下:


   

验证摘要

ValidationSummary控件不执行任何验证,但在页面中显示所有错误的摘要。摘要显示所有未通过验证的验证控件的ErrorMessage属性的值。

以下两个相互包含的属性列出了错误消息:

  • ShowSummary :以指定格式显示错误消息。

  • ShowMessageBox :在单独的窗口中显示错误消息。

该控件的语法如下:


验证组

复杂的页面在不同的面板中提供了不同的信息组。在这种情况下,可能需要对单独的组分别执行验证。使用验证组可以处理这种情况。

要创建验证组,您应该通过设置输入控件和验证控件的ValidationGroup属性将它们置于相同的逻辑组中。

以下示例描述了由学校的所有学生(分为四所房屋)填写的用于选举校长的表格。在这里,我们使用验证控件来验证用户输入。

这是设计视图中的表单:

设计视图中的表单

内容文件代码如下:

Candidate: Please Choose a Candidate M H Kabir Steve Taylor John Abraham Venus Williams
House: Red Blue Yellow Green
Class:
Email:

提交按钮后面的代码:

protected void btnsubmit_Click(object sender, EventArgs e)
{
   if (Page.IsValid)
   {
      lblmsg.Text = "Thank You";
   }
   else
   {
      lblmsg.Text = "Fill up all the fields";
   }
}