Мне нужен список различных (производных) типов объектов, работающих с Default Modelbinder в Asp.net MVC 2.
У меня следующая 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, чтобы получить список обрабатываемых объектов различных типов? Наличие дополнительного списка для каждого типа объекта (например, List, List и т. Д.) Кажется мне не лучшим решением, поскольку это большие накладные расходы как при построении модели представления, так и при сопоставлении ее с моделью предметной области.
Если подумать о другом подходе привязки всех свойств в настраиваемом связывателе модели, как я могу использовать здесь подход аннотаций данных (проверка требуемых атрибутов и т. Д.) Без больших накладных расходов?