ViewModel定義に対する2つの異なるアプローチについての意見を求めています
私はカンパニークラスを持っています
public class Company
{
public string Name { get; set; }
public int CountryID { get; set; }
}
作成ビューと編集ビューでは、CountryID 選択用の DropDownList に入力する国のリストが必要です。ViewModel を構成する方法には、以下で説明する 2 つの大きな選択肢があります。
ネストされた ViewModel
public class CompanyCreateEditViewModel
{
public Company Company { get; set; }
public IEnumerable<Country> Countries{ get; set; }
....
}
フラットなビューモデル
public class CompanyCreateEditViewModel
{
public string Name { get; set; }
public int CountryID { get; set; }
public IEnumerable<Country> Countries{ get; set; }
....
}
現時点では、フィールドを再度定義する手間が省けるため、ネストされたアプローチを好んでいますが、より優れたアプローチやコメントを募集したいと考えています。
ありがとう
ベストアンサー1
個人的には、部分ビューを使用するとより論理的な設計になるため、プレゼンテーションにはネストされたアプローチを好みます。CompanyPartialView
をレンダリングする方法を知っている がアプリケーション全体で使用されている可能性があるため、 をネストされた構造としてCompany
公開することは非常に理にかなっています。Company
一方、フラットなViewModelクラスはデータを扱うのに最も簡単です。エントリ. 個々のプロパティにマップされるフォーム フィールドが多数あります。そのため、私の戦略は通常、データ入力ページではそれらをフラット化し、プレゼンテーション/レポート ページではそれらをネストすることです。