一、注解
注解是一种通用机制,可以用来向框架注入元数据,同时,框架不只驱动元数据的验证,还可以在生成显示和编辑模型的HTML标记时使用元数据。
二、验证注册的使用
1.Require:属性为Null或空时引发验证错误
2.StringLength:字符数验证。
[StringLength(160)]最大字符为160. [StringLength(160,MinimumLength=3)]最小字符数为3.最大字符数为160.
3.Range:指定数值类型的最大值和最小值。
[Range(3,55)] 输入数据在两数之间。
4.RegularExpression:正则表达式验证。
5.Remote:利用服务器端回掉函数指向客户端验证逻辑。
[Remote("Controller","Account")] 特性中可以设置客户端代码要调用的控制器名称和操作名称,如Controller和Account。
6.Compare:验证两个属性是否拥有相同的值,如两次输入的邮箱地址是否相同。
[Compare("Email")] 验证拥有该注解的属性的值是否与名为Email属性的值相同。
三、自定义错误提示信息及其本地化
每个验证特性都允许传递一个带有自定义错误提示的参数。
[Compare("Email",ErroeMessage="两次输入不一致")]
自定义错误提示消息在字符串中也有一个格式项。
[Required(ErrorMessage="你输入的{0}为空。")]
注意:
默认情况下,ASP.NET MVC框架在模型帮顶时执行验证逻辑。当然,也可以使用控制器的UpdataModle或TryUpdataModel方法显示的执行模型绑定。其中,控制器操作决定了在模型验证失败和验证成功时的执行流程。
四、自定义验证逻辑
所有的验证注解特性最终派生自基类ValidationAttribute,所以自定义验证逻辑也派生中该基类中。实现这个验证逻辑至少需要重写基类中提供的IsValid的方法中的一个版本。而一个模型可以通过实现IValidatableObject接口实现对自身的验证。
五、显示和编辑注解
1.Display特性可以为模型属性设置友好的显示名称。
2.ScaffoldColumn特性可以隐藏HTML辅助方法渲染的一些属性。
3.DisplayForm:用于处理各种格式化选项。其ApplyFormatInEditModle参数设为false,其中一个主要原因是MVC模型绑定器不能显示那些解析格式化的值。
4.ReadOnly:需要保持默认的模型绑定器不使用请求中的新值来更新属性时,苦哉属性上添加该特性。
5.DataType:运行时提供关于属性的特定用途信息。