我试图找出将表单发布到控制器时我想做什么。
假设我的班级:
public class ObjectToBeBound {
public int Id {get;set;}
public List<BaseObject> Items {get;set;}
}
public class Child1 : BaseObject {
public string ExtraField {get;set;}
}
public class Child2 : BaseObject {
public string OtherField {get;set;}
}
在页面上,Items属性将是“Child1”和“Child2”对象的混合。但是,当我发布表单时,由于该属性被定义为“BaseObject”的列表,我只获得在“BaseObject”上定义的字段。
我研究了创建一个自定义模型绑定器,但我无法弄清楚是否可以绑定一个对象的属性,因此我可以将Item [0]绑定为Child1,将Item [1]和Item [2]绑定为Child2 。我只看到了将整个“ObjectToBeBound”对象赋予特定类型的方法。
我可以在自定义模型绑定器中手动分配每个属性,但我想知道是否有一种我更容易丢失的方法。有什么想法吗?
答案 0 :(得分:0)
我认为您可以使用反射来查找列表中对象的类型,然后您可以转换为特定的Child。 在演员之后,您应该能够使用子对象属性