博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
6.1.1 验证注解的使用
阅读量:6500 次
发布时间:2019-06-24

本文共 2150 字,大约阅读时间需要 7 分钟。

数据注解特性定义在名称空间System.ComponentModel.DataAnnotations 中(但接下来

将看到,有些特性不是定义在这个名称空间中)。它们提供了服务器端验证的功能,当在模
型的属性上使用这些特性之一时,框架也支持客户端验证。在名称空间DataAnnotations 中,
有4 个特性可以用来应对一般的验证场合。下面从Required 特性开始对它们逐一介绍。

1.Required 必须字段

[Required]public string FirstName { get; set; }[Required]public string LastName { get; set; }

2.StringLength 字符长度

[Required][StringLength(160)]public string FirstName { get; set; }[Required][StringLength(160)]public string LastName { get; set; }
[Required][StringLength(160, MinimumLength=3)]public string FirstName {
get; set;}

3.RegularExpression

[RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")]public string Email { get; set; }

4.Range

Range 特性用来指定数值类型值的最小值和最大值。

[Range(35,44)]public int Age {
get; set;}

该特性的第一个参数设置的是最小值,第二个参数设置的是最大值,这两个值也包含

在范围之内。Range 特性既可用于int 类型,也可用于double 类型。它的构造函数的另外
一个重载版本中有一个Type 类型的参数和两个字符串(这样就可以给date 属性和decimal
属性添加范围限制了)。

[Range(typeof(decimal), "0.00", "49.99")]public decimal Price {
get; set;}

5. System.Web.Mvc 下的验证特性

ASP.NET MVC框架还为应用程序在名称空间System.Web.Mvc 中额外添加了两个验证
特性。其中一个是Remote 特性。Remote 特性允许利用服务器端的回调函数执行客户端的
验证逻辑。以MVC Music Store 中RegisterModel 类的UserName 属性为例,系统中不允许
两个用户具有相同的UserName 值,但是在客户端很难验证以确保UserName 属性值的唯
一性(除非把所有的用户名都从数据库传送到客户端)。使用Remote 特性可以把UserName
的值传到服务器,然后在服务器端的数据库中与相应的表字段值进行比较:

[Remote("CheckUserName", "Account")]public string UserName {
get; set;}

在特性中可以设置客户端代码要调用的控制器名称和操作名称。客户端代码将自动把

用户输入的UserName 属性值发送到服务器,该特性的一个重载构造方法还允许指定要发
送给服务器的其他字段:

public JsonResult CheckUserName(string username){var result = Membership.FindUsersByName(username).Count == 0;return Json(result, JsonRequestBehavior.AllowGet);}

上面的控制器操作将利用与UserName 属性同名的参数进行验证,并返回一个封装在

JavaScript Object Notation(JSON)对象中的布尔类型值(true 或false)。第8 章将会对JSON、
AJAX 和其他客户端特征进行详细介绍。
第二个是Compare 特性,它用于确保模型对象的两个属性拥有相同的值。例如,为了
避免顾客输入错误,往往要求输入两次e-mail 地址:

[RegularExpression(@"[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}")]public string Email { get; set; }[Compare("Email")]public string EmailConfirm { get; set; }

是由于数据注解的可扩展性,才导致了Remote 和Compare 特性的存在。本章后面部分将会讲解如何创建自定义注解。下面介绍如何在验证失败时创建自定义的错误提示消息。

本文转自ylbtech博客园博客,原文链接:http://www.cnblogs.com/ylbtech/p/5599835.html
,如需转载请自行联系原作者
你可能感兴趣的文章
swift版的元组
查看>>
磁盘管理 之 parted命令添加swap,文件系统
查看>>
什么是redis,redis能做什么,redis应用场景
查看>>
Monkey测试命令【学习笔记】
查看>>
[关注]Visual Studio 2010 和 .NET Framework 4.0 专题
查看>>
信息系统开发平台OpenExpressApp - 支持差异保存
查看>>
linux下的webserver BOA及CGIC库的使用指南(转帖)
查看>>
[zz]在linux中出现there are stopped jobs 的解决方法
查看>>
Delphi下实现全屏快速找图找色 一、数据提取
查看>>
查询表字段信息
查看>>
Mysql中文输入出现1366错误的解决办法
查看>>
CentOS 6.4 x86_64 安装GCC 4.7.3
查看>>
logback与Log4J的区别
查看>>
关于机器学习的最佳科普文章:《从机器学习谈起》
查看>>
咏南新CS三层开发框架
查看>>
dxFlowChart运行时调出编辑器
查看>>
TDiocpCoderTcpServer返回数据记录有条数限制的问题
查看>>
NET Framework 3.0 (WinFX) RTM发布
查看>>
图片拼接器
查看>>
C++ TinyXml操作(含源码下载)
查看>>