当您拥有从其他人继承的模型类时,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
类。
那么,有没有办法从默认的模型绑定器中获得这样的功能呢?