ASP.NET中數據校驗部分的封裝與應用

業務系統涉及到較多的表單編輯與校驗,最簡單的辦法是使用asp.net自帶的數據校驗控件即可,但這樣有以下3個問題:

  1 校驗控件要在設計時加入到表單上,並手工設置:數據類型,錯誤信息等屬性,比較繁瑣。

  2 對於一個輸入框,我們可能要檢查多項,如:必填,必須是日期格式,並且要大於2007-1-1。這樣就需要加入多個校驗控件。

  3 業務規則和表單綁定在一起,不利於維護和重用。

  我們希望的校驗功能是:

  1 校驗規則和表單脫離,表單上畫好輸入框即可,校驗控件會在運行時,根據配置文件動態創建。

  2 根據驗證規則,生成默認的:不能爲空,錯誤的數字類型,必須在1到100之間這樣的提示信息。

  3 靈活的驗證規則表達式:如: range(1, 200) , >=0.5 , Mail(), Mobile()。目前不支

  持 and, or 這樣的條件,但容易擴展。

  爲此我們封裝了這部分的功能,使用時只要:

  在xml文件中設置好:控件名稱,數據類型,是否必填,驗證表達式信息。

以下是引用片段:
〈ValidateInfo〉
〈ControlName〉排口數量〈/ControlName〉
〈DataType〉Integer〈/DataType〉
〈Require〉true〈/Require〉
〈Expression〉range(1, 100)〈/Expression〉
〈/ValidateInfo〉

在page的Page_Init事件中,調用類方法:
ValidateHelper.LoadFromFile("數據校驗_配置.xml") 即可。


類設計:
// 配置信息類
class ValidateInfo
{
public string ControlName;
public ValidationDataType DataType;
public string ErrorMessage;
public bool Require;
public string Expression;
}

// 校驗控件創建工廠
public class ValidatorFactory
{
CreateRequiredFieldValidator();
CreateDateTypeCheckValidator();
CreateRangeValidator(string min, string max);
CreateCompareValidator(ValidationCompareOperator oper, string valueToCompare);
...
}

// 校驗規則解析器,根據配置信息,創建校驗控件
public class ValidatorParser
{
Parse(ValidateInfo info, ValidatorFactory factory);
...
}

// 讀取配置信息,並綁定校驗控件到表單
public class ValidateHelper
{
LoadFromFile(Page page, string fileName)
}  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章