本文體驗範圍驗證。與本文相關的包括:
當需要對字元串長度進行驗證,可以用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視圖
效果:
