天天看点

MVC验证04-自定义验证规则、日期范围验证

本文体验范围验证。与本文相关的包括:

当需要对字符串长度进行验证,可以用StringLength:

[StringLength(100, ErrorMessage = "{0} 必须至少包含 {2} 个字符。", MinimumLength = 6)]

当需要对数组范围进行验证,可以用Range:

[Range(0,5)]

如果需要对日期范围进行验证呢?

假设来验证日期,以当前日期为基准,介于当前日期和第七天之间的日期为有效,其它无效。

  自定义验证特性,继承 ValidationAttribute 并实现IClientValidatable

重写基类ValidationAttribute的IsValid()方法,是为了服务端验证用的。

实现IClientValidatable接口方法,是为了在前端html元素增加某个属性,好让jquery侦测到。

注意:

■ ValidationType = "dayrange"中的dayrange必须小写,否则报错。

■ ValidationType = "dayrange"最终成为html元素的一个属性data-val-dayrange,从而能被jquery侦测辨别。

■ rule.ValidationParameters["min"]和rule.ValidationParameters["max"],min和max将作为参数供jquery扩展方法使用,当然也必须是小写。

  把自定义验证特性打到View model上

[DayRange(0, 7)]验证当天到第七天之内的日期。

  扩展jquery验证jQuery.validator.dayrange.js

  Register.cshtml视图

效果:

MVC验证04-自定义验证规则、日期范围验证

继续阅读