ASP.NET MVC のフラットな ViewModel クラスとネストされた ViewModel クラスの比較 質問する

ASP.NET MVC のフラットな ViewModel クラスとネストされた ViewModel クラスの比較 質問する

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クラスはデータを扱うのに最も簡単です。エントリ. 個々のプロパティにマップされるフォーム フィールドが多数あります。そのため、私の戦略は通常、データ入力ページではそれらをフラット化し、プレゼンテーション/レポート ページではそれらをネストすることです。

おすすめ記事