MVC3绑定从基类继承的Object属性

时间:2012-02-08 14:06:28

标签: c# asp.net-mvc-3

我试图找出将表单发布到控制器时我想做什么。

假设我的班级:

    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”对象赋予特定类型的方法。

我可以在自定义模型绑定器中手动分配每个属性,但我想知道是否有一种我更容易丢失的方法。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用反射来查找列表中对象的类型,然后您可以转换为特定的Child。 在演员之后,您应该能够使用子对象属性