2009-06-08 8 views
4

私の現在の「ユーザー」クラスのモデル情報のみを使用しているビューがあるとします。C#MVC:ViewModelまたはModelクラスを返しますか?

追加のviewmodelラッパーを作成するか、ユーザークラスインスタンスをビューに直接戻す必要がありますか?

直接返されるオブジェクト:のViewModelオブジェクトにラップ

return View(user); 

return View(new UserViewModel(user)); 

私はここでのベストプラクティスを探しています。たぶん私は後で詳細情報を返す必要がありますが、私はまだそれを知っていません。それでも、それでも余分なViewModelクラスを使うのは引き続き議論になるでしょうか?

ありがとうございました!

答えて

5

モデルからの情報のみを使用している場合は、ビューモデルを使用しないでください。それは単純な状況です。強く型付けされたビューを作成し、モデルを直接使用します。

+0

拡張性の面でも?なぜなら、必要な場合に備えて、別のフィールドをVMに追加するほうがずっと簡単なからです。 – Alex

+0

VMを作成するよりも、VMに新しいフィールドを追加するほうがはるかに簡単だとは思いません。どちらの場合も、あなたの変更を計画し、そのテストを作成します。一般的に私はあらゆる状況において、最も簡単な解決策が最良の解決策であると考えています。 –

2

ビューモデルが必要になるまで、ドメインモデルを使用する傾向があります。どうして?ドメインモデルを使用する方が早いです。その後、ドメインモデルがもはや私の必要性をカバーしなくなったとき、私は必要な場所に必要なものを追加してリファクタリングします。私は「すぐに働き、精力的にリファクタリングする」という大きなファンです。

これは、モデルを複数のユーザーコントロールに分割する場合にも使用します。

関連する問題