現在、ASP.NET MVC2 プロジェクトに取り組んでいます。実際の MVC Web アプリケーションに取り組むのはこれが初めてです。ASP.NET MVCの Web サイトのおかげで、すぐに使い始めることができましたが、データモデルの検証に関してはまだあいまいな知識しかありません。
私の問題は、複雑な検証ルールに関して、入力されたデータモデルをどこで管理すればよいか本当にわからないことです。たとえば、正規表現を使用して文字列フィールドを検証するのは非常に簡単で、フィールドを特定の属性で装飾するだけでよいことがわかっているため、データ管理ルールがモデルに実装されています。しかし、特定の時間ルールに従って正しく設定する必要がある複数の日時など、互いに検証する必要がある複数のフィールドがある場合、どこで検証する必要がありますか? 独自の検証属性を作成できることはわかっていますが、属性を使用して検証するには複雑すぎる特定の検証パスを検証で要求することがあります。
この最初の質問は、コントローラーでモデルを検証するのは正しいですか? という関連する質問にもつながります。現時点では、これが複雑な検証のために見つけた唯一の方法だからです。しかし、これは少し汚いと思います。コントローラーの役割に実際には適合せず、テストがはるかに難しいと感じています(複数のコードパス)。
ありがとう。
注意: ここでかなり良い解決策をいくつか得ましたが、他のアイデアや「ベスト プラクティス」の解決策を待っています。