繁体   English   中英

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

[英]MVC3 Binding an Object property that inherits from a base class

我试图找出将表单发布到控制器时是否可以做我想做的事情。

假设我的课:

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

我可以在自定义模型联编程序中手动分配每个属性,但是我想知道是否缺少一种更简单的方法。 有任何想法吗?

我认为您可以使用反射来找出列表中对象的类型,然后可以将其强制转换为特定的Child。 强制转换后,您应该可以使用子对象属性

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM