【发布时间】:2010-06-01 16:42:54
【问题描述】:
当您拥有从其他人继承的模型类时,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 类的任何实例。
那么,有没有办法从默认的模型绑定器中获得这样的功能?
【问题讨论】:
标签: asp.net-mvc-2 modelbinders model-binding