Я пытаюсь выяснить, возможно ли то, что я хочу сделать, при отправке формы в контроллер.MVC3 Связывание свойства Object, которое наследуется от базового класса
Пусть мой класс:
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 будет сочетание «ребенка1» и объектов «Child2». Однако, когда я отправляю форму, поскольку свойство определяется как список «BaseObject» s, я получаю только поля, которые определены в «BaseObject».
Я изучил создание настраиваемого связующего объекта, но я не мог понять, возможно ли связать свойство объекта, чтобы я мог привязать Item [0] как Child1 и Item [1] и Item [2] as Child2. Я только видел способы дать всему объекту ObjectToBeBound определенный тип.
Я мог бы вручную назначить каждое свойство в настраиваемом связующем устройстве, но мне интересно, есть ли у меня более простой способ. Есть идеи?
Я могу узнать, какой тип объекта должен быть, но когда вы переопределяете DefaultModelBinder, вы получаете список свойств в форме, а не весь объект. Таким образом, ModelBindingContext будет иметь такие вещи, как ObjectToBeBound.Items [0] .ExtraField и ObjectToBeBound.Items [1] .OtherField – Kevin