Asp.net MVC 2の既定のModelbinderで動作するさまざまな(派生した)オブジェクトタイプのリストが必要です。
私は次のViewModelを持っています:
public class ItemFormModel
{
[Required(ErrorMessage = "Required Field")]
public string Name { get; set; }
public string Description { get; set; }
[ScaffoldColumn(true)]
//public List<Core.Object> Objects { get; set; }
public ArrayList Objects { get; set; }
}
また、リストには、さまざまな派生型のオブジェクトが含まれています。
public class TextObject : Core.Object
{
public string Text { get; set; }
}
public class BoolObject : Core.Object
{
public bool Value { get; set; }
}
List実装とArrayList実装のどちらを使用するかは関係ありません。すべてがフォームで適切にスキャフォールディングされますが、Modelbinderは、ActionResultにポストバックするときに、派生オブジェクトタイプのプロパティを解決しません。
処理されるさまざまなオブジェクトタイプのリストを取得するためのViewmodel構造の良い解決策は何でしょうか?すべてのオブジェクトタイプ(リスト、リストなど)に追加のリストを用意することは、ビューモデルの構築とドメインモデルへのマッピングの両方で多くのオーバーヘッドが発生するため、私にとっては良い解決策ではないようです。
カスタムモデルバインダーですべてのプロパティをバインドする他のアプローチについて考えると、ここでデータ注釈アプローチ(必要な属性の検証など)を多くのオーバーヘッドなしで使用するにはどうすればよいですか?