簡體   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