ASP.NET MVC验证特性
支持对模型应用验证规则;位于SysTem.CompontModel.DataAnnotions命名空间;都继承自ValidationAttribute类,该类的一个基本属性ErrorMessage用来定义消息属性
Required:必填验证
Compare:比较验证,验证两个值是否一致
StringLength:字符串长度验证(可以单独设置最大长度,也可以同时设置最小长度)
Range:用于数字(整数和浮点数)、时间等类型的数据范围验证
RegularExpression:正则表达式验证
一、定义验证规则
1、在Models中引用:
框架:System.Web
扩展:System.CompanentModel.DataAnnotaions
框架:System.Web.Mvc
2、实体类中引用:
using System.CompanentModel
using System.CompanentModel.DataAnnotaions
using System.Web.MVC
二、应用验证规则
1、可以用多个规则约束同一个属性。 在类属性前设置。
[DisplayName("年龄")] 占位符上显示的文字
[Required(ErrorMessage="{0}不得为空")]
[Range(18,60,ErrorMessage="{0}必须在{1}和{2}之间")]
public int ? Age{get;set;} “?”表示可为空类型
2、要用强类型,视图引擎Razor;
3、检相视图中名称与属性名称是否完全一致
4、控制器里与数据库相结合进行验证
表单与模型验证的关系:在模型中定义验证规则后,ASP.NET MVC在将数据映射到模型时,会自动应用模型类上的验证规则;
验证过程中,会自动把验证错误信息添加到ModelState数据字典中。
ModelState的常用成员:
isValid:判断模型上所有验证是否通过
AddModelError(key.value):添加自定义的错误信息
三、显示验证信息
1、两种方法:
方法一:理论上可以使用ModelState对象来输出验证信息,但比较繁琐;
方法二:实际中,使用Html对象的两个帮助方法来输出验证信息
MvcHtmlString ValidationMessage(string modelName):Html视图助手。显示指定字段验证信息(在文本框后面或下面显示验证信息,放在要显示的位置就可以了)
MvcHtmlString ValidationSummary():显示所有字段验证信息。