私のビューモデルは次のようになります。
public class CarViewModel {
public CarModel Car { get; set; }
public List<CarModel> Cars { get; set; }
}
CarModel
次のようになります:
public class Car() {
public string Make { get; set; }
public string Model { get; set; }
. . .
}
私の目標は、リストビューと単一ビューの両方に使用できる単一のビューモデルのみを用意することです。リストビューの場合、単一のCarエンティティを無視して、Carsリストをハイドレイトし、ビュー内で使用します。
詳細ビューの場合は、逆になります。私のコントローラーは単一のCarエンティティをハイドレイトし、ビューはそれを使用してリストを無視します。
これは部分的に機能していますが、モデルのバインドは弱いです。
ここでは、DRY(繰り返しないでください)とSOC / SRP(関心の分離/単一責任プリンシパル)が競合しているようです。リストビューと詳細ビューの両方を処理するための最良の方法は何ですか?答えは重複したビューモデルを作成することだと思いますが、私がそれを助けることができれば、コードを重複させたくありません。