今日はMVCの周りに頭を浮かべて、モデルを直接ビューに渡さないようにすることをお勧めします。代わりに、ViewModelを使用します。IEnumerable <Object>をViewModelに渡す - オブジェクトがViewModelである必要がありますか?
私はAutoMapperを研究し、それを使って自分のViewModelsをそれぞれのモデルにマッピングする計画を立てています。 AutoMapperは、ソースとデスティネーションがマップされている限り、IEnumerableを別のマッピングなしでIEnumerableにマップするのに十分スマートであることを理解しています。
しかし、私はViewModelでIEnumerableを私のビューに渡すのをどう処理するのか混乱しています。私は現在IEnumerableを含むViewModelを使ってページを操作していますが、これはIEnumerableを直接ビューに渡すのと同じくらい悪いことを読んでいます。だから私は別のViewModelメインのViewModelのIEnumerableプロパティで使用されるオブジェクトを保持する必要がありますか?
だからここでの活動は、問題のモデルである:
public class ActivityHistoryViewModel
{
public IEnumerable<Activity> activities { get; set; }
}
私はActivityViewModelを作成し、このように私のActivityHistoryViewModelを書くために必要なのですか?
public class ActivityHistoryViewModel
{
public IEnumerable<ActivityViewModel> activities { get; set; }
}
これを行う簡単な方法はありますか?
Duh、didn ' IEnumerableを渡すと思うことさえありません。しかし私は実際には、私が追加のデータを渡す必要があるより大きなシナリオを考えていました。 –
代わりに 'ActivityHistoryViewModel'を使うコードを追加しました。あなたが探しているものを願ってください。 –
素晴らしい、私はネストされたエンティティオブジェクトのプロパティへのカスタムマッピングを含むすべての作業を行うことができました。私はあなたの助けに感謝します。一度それを理解すると、いつでも簡単になります。 :) –