天天看點

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-自定義驗證規則、日期範圍驗證

繼續閱讀