私たちのビジネス システムでは、フォームの編集と検証が頻繁に行われます。最も簡単な方法は、asp.net に付属するデータ検証コントロールを使用することですが、これには次の 3 つの問題があります。
1. 検証コントロールを設計に含める必要がある。フォームにデータ型やエラーメッセージなどの属性を手動で設定するのは非常に面倒です。
2 入力ボックスでは、必須、日付形式である必要がある、2007-1-1 より大きい必要があるなど、複数の項目をチェックする必要がある場合があります。これには、複数の検証コントロールを追加する必要があります。
3 ビジネス ルールとフォームが結合されているため、メンテナンスや再利用が困難です。
私たちが期待する検証機能は次のとおりです。
1. 検証ルールはフォームから分離されています。フォーム上に入力ボックスを描画するだけで、実行時に構成ファイルに従って検証コントロールが動的に作成されます。
2 検証ルールに従って、デフォルトのプロンプト メッセージが生成されます。空にすることはできません。数値のタイプが間違っています。1 から 100 までの間である必要があります。
3 柔軟な検証ルール式: range(1, 200)、>=0.5、Mail()、Mobile() など。現在、and や or などの条件は
サポートされて
いませんが、簡単に拡張できます。このため、関数のこの部分はカプセル化されており、使用する際は、
コントロール名、データ型、必須かどうか、検証式情報を XML ファイルに設定するだけで済みます。
ここに引用があります:
<検証情報>
<ControlName>アウトレットの数量</ControlName>
<DataType>整数</DataType>
<Require>true</Require>
<式>範囲(1, 100)</式>
</検証情報>
ページの Page_Init イベントで、クラス メソッドを呼び出します。
ValidateHelper.LoadFromFile("データ検証_構成.xml") が使用できます。
クラス設計:
//設定情報クラス
クラス検証情報
{
パブリック文字列 ControlName;
public ValidationDataType データ型;
パブリック文字列エラーメッセージ;
public bool 必須;
パブリック文字列式。
}
//バリデーションコントロール作成ファクトリー
パブリック クラス ValidatorFactory
{
CreateRequiredFieldValidator();
CreateDateTypeCheckValidator();
CreateRangeValidator(最小文字列, 最大文字列);
CreateCompareValidator(ValidationCompareOperator oper, string valueToCompare);
...
}
// 検証ルール パーサー、構成情報に基づいて検証コントロールを作成します
パブリック クラス ValidatorParser
{
Parse(ValidateInfo 情報、ValidatorFactory ファクトリー);
...
}
// 構成情報を読み取り、検証コントロールをフォームにバインドします
パブリック クラス ValidateHelper
{
LoadFromFile(ページ ページ、文字列ファイル名)
}