0

フォーム内のフィールドの検証要件は外部テーブルに含まれているため、コードを変更したり再構築したりせずにフィールドを更新できます。

検証要件(範囲、必須、正規表現、他のフィールドへの依存)が混在する約100のフィールドがあります。1つの例は、日付範囲の検証です。生年月日フィールドには、現在の日付から-10年から-50年の間の日付範囲が必要です。

私は主題について読みましたが、完全な解決策のパターンを特定していません。

VisualStudio2010をMVC3とEntityFrameworkで使用しています。

これに関するどんな助けもありがたいことに受け取られるでしょう。前もって感謝します。

4

1 に答える 1

1

単純なレベルでは、組み込みのデータ注釈検証属性を使用して検証を行うことができると思います。そのためには、テーブルに格納されている検証ルールを属性にマップする必要があります。

クラスを継承してカスタムモデル検証プロバイダーを作成するだけだと思いますModelValidatorProviderGetValidatorsこのクラスには、そのモデルのコレクションバリデーターを返すという単一のメソッドが含まれています。

メソッドを実装するGetValidators必要があり、そこでデータベース呼び出しを行って、データベース(またはキャッシュ?)からモデルの検証ルールを取得し、それらをModelValidatorsに変換する必要があります。ビルトインを使用DataAnnotationsModelValidatorして検証を行うこともできます。

そのソースコードを調べて、DataAnnotationsModelValidatorProviderすべての情報を入手することをお勧めします。そのクラスでは、基本的に、モデルプロパティに適用されるすべての検証属性を繰り返し、ModelValidatorアダプターとファクトリを介してそれらをsに変換します。あなたの場合、属性の代わりにそれらはテーブルのレコードとして保存されており、そこに多くの作業が行われることはないと思います。

于 2012-09-13T16:01:02.213 に答える