【发布时间】:2010-03-10 11:21:36
【问题描述】:
我想要一个在 Asp.net MVC 2 中使用 Default 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 实现,所有的东西都很好地在表单中搭建好了,但是当返回到 ActionResult 时,modelbinder 不会为我解析派生对象类型属性。
对于 Viewmodel 结构获取处理的不同对象类型的列表,有什么好的解决方案?为每种对象类型(例如 List、List 等)提供一个额外的列表对我来说似乎不是一个好的解决方案,因为这在构建视图模型并将其映射回域模型时都会产生很多开销。
考虑在自定义模型绑定器中绑定所有属性的另一种方法,我如何才能在此处使用数据注释方法(验证所需属性等)而无需大量开销?
【问题讨论】:
标签: asp.net-mvc-2 viewmodel modelbinders defaultmodelbinder