一、起源
在項目開發中數據有效性驗證肯定是必須的,那麼在哪裡驗證呢!?怎麼去驗證呢?
針對web項目而言,客戶端驗證+服務端的驗證缺一不可,客戶端的腳本驗證用於提高用戶體驗!
服務端的驗證主要是為了數據的安全性、合法性的驗證!
但是我們在實施這兩種驗證的時候會發現有以下幾個可能出現的問題:
1.客戶端代碼驗證寫起來相對比較煩瑣,而且易出錯!(主要是拼寫錯誤,例如js方法名拼寫錯誤)
2. 服務端的驗證和客戶端驗證要保持一致性一樣很煩瑣。(客戶驗證輸入不能超過10個字符,那後服 務器端也要相應的控制在10個字符,而且修改時,需要將客戶端和服務端同步修改,提示信息,前後端都 要再輸入一次!一個字“煩”),總覺得時間不應該花在這個上面!
3.驗證與賦值;一般情況下客戶端提交的數據,我們驗證通過後,把變量的值賦給實體或是相關的變 量,如果不通過有些時候我們有時候還會需要給變量或實體屬性值加上一個默認值,這個時候我們寫的代 碼可能不避免的出現一些if的判斷語句,讓代碼顯得不夠簡潔。
其它的細節問題,這裡就不一一列舉了,我針對上面的問題,自己做了一個下面的小組件!
二、 思路說明:
為了解決第一個問題和第二個問題,我決定客戶端的驗證代碼由服務端的驗證代碼直接生成頁面中, 這樣可以避免客戶端的代碼在編寫上的錯誤!而服務端的程序代碼每次被訪問時,通過驗證狀態開關來開 啟驗證,用戶可以根據自己的業務邏輯來開啟驗證,我先定義了一個驗證容器ValidatorContainer和一個 驗證器Validator兩個概念,驗證容器是指包括了一個或多個驗證器對象的容器類,驗證器是針對每一條 數據項所添加的驗證信息類!
三、調用說明:
可能這一部分的內容可以讓你更直觀的了解這個驗證組件的一些原理和信息:
第一步:先添加引用,這個不用多說,Validator.dll引用進去(最下面附有項目的源碼)。
第二步:代碼都在下面了,不用再說了