2010-11-26 18 views
1

開発の開始時に、私は "ドメインモデルとビューの間のインピーダンスの不一致"という問題に直面しました。この問題を解決するために、私はViewModelパターンを使用することに決めました - すべてのビュー(強く型付けされている)に対してviewmodelクラスを作成します。しかし、検証ロジックはどこにありますか?viewmodelクラスまたはドメインモデルオブジェクトではどこですか?そして、コントローラのアクションでデータベースにクエリを実行し、次にビューモデルまたはビューモデルに直接挿入する操作を実行する必要があるのはどこですか?ASP.NET MVCビューモデルパターン - 検証とデータベース操作

ありがとうございます。

答えて

2

viewmodelの検証ロジックが必要です。これはビューが送信するもので、検証する必要があるものです。 ViewModelの作成には、データベースへの問い合わせとモデルの返却を行うリポジトリを作成する方法があります。次に、それらのモデルをビューモデルにマップします(AutoMapperがあなたを助けます)。最後に、ビューモデルをビューに戻します。これは、逆も同様です。ユーザーは、検証されたモデルがモデルにマップされ、更新のためにリポジトリに渡されるビューモデルの形式として、コントローラアクションにデータをPOSTします。

データ注釈の代わりに、FluentValidationを参照して、ビューモデルを検証することができます。 ASP.NET MVCを使用したintegrates nicely