この q/a Real example of TryUpdateModel, ASP .NET MVC 3 を読み、 @ben-foster の応答に本当に興味を持っていました。
私はその答えについてコメントを始めましたが、かなり長くなったので、新しい質問を始めました。
すべてのアプローチに ViewModel を使用すると (私はこれがとても気に入っています)、どうすればよいかについてアドバイスが必要な「奇妙なシナリオ」に陥ります。
この構造を想像してください:
public class ProductListEditableViewModel {
List<ProductEditViewModel> products {get;set;}
}
public class ProductEditViewModel {
List<PriceViewModel> prices {get;set;}
}
public class PriceViewModel {
CurrencyViewModel currency {get;set;}
}
等々 ... ?内部クラスごとに 1 つのビュー モデルを本当に作成しますか? では、それをすべてモデル オブジェクトにマップするにはどうすればよいでしょうか。
また、それは編集をカバーしていますが、私は追加、電子メールによる送信、そして潜在的により多くのビューを持っているので、より多くのビューモデルを持っています!! 私は何かのように終了する必要があります:
AddCurrencyViewModel QuickAddCurrencyViewModel EditCurrencyViewModel ListCurrencyViewModel DeleteCurrencyViewModel ShareCurrencyViewModel
すべてが「ほぼ同じ」プロパティを持っていますか?
それらすべてを 1 つのファイルにまとめる必要がありますか?
また、このすべてのビューモデルが必要ですか、それとも継承アプローチの方が良いでしょうか?
可能であれば、複雑なシナリオについて詳しく説明していただければ幸いです
また、モデル オブジェクトの一部を Web サービス / API に公開するために DTO アプローチを使用しているため、この DTO が正確に私の ViewModel ではない場合、何らかの形式のマッピングが既に配置されています。そのうちの 1 つを削除する必要がありますか? このシナリオでの提案は何ですか?
私はエンティティフレームワークを使用していますが、問題はORMにとらわれない(またはすべきである)と思います。UoW パターンを使用しない (これは役に立ちますか?) オブジェクトの深さが増すにつれて複雑になるように見えます。
どうもありがとう!