Предлагает ли ASP.NET MVC какой-либо простой способ заставить привязку модели работать, когда у вас есть классы моделей, которые наследуются от других?
В моем сценарии у меня есть строгое представление вида List<Person>
.
У меня есть пара классов, которые наследуются от Person
, а именно PersonTypeOne
и PersonTypeTwo
.
У меня есть три строго типизированных частичных представления с именами, которые соответствуют именам этих классов (и отображают элементы формы для свойств их соответствующих моделей).
Это означает, что в моем главном представлении у меня может быть следующий код:
<% for(int i = 0; i < Model.Count; i++)
{
Html.RenderPartial(Model[i].GetType().Name, Model[i]);
} %>
Это работает хорошо, кроме случаев, когда пользователь отправляет форму, соответствующий метод действия контроллера просто получает List<Person>
, а не список Person
, PersonTypeOne
и PersonTypeTwo
.
Это в значительной степени ожидаемо, так как отправка формы не содержит достаточно информации, чтобы указать связующему по умолчанию модель для создания любых экземпляров классов PersonTypeOne
и PersonTypeTwo
.
Итак, есть ли способ получить такую функциональность из связующего устройства модели по умолчанию?