3

当您拥有从其他人继承的模型类时,ASP.NET MVC 是否提供任何简单的方法来使模型绑定工作?

在我的场景中,我有一个强类型为List<Person>.

我有几个继承自 的类Person,即PersonTypeOnePersonTypeTwo

我有三个强类型的局部视图,它们的名称与这些类名匹配(并为它们各自模型的属性呈现表单元素)。

这意味着在我的主视图中,我可以拥有以下代码:

<% for(int i = 0; i < Model.Count; i++)
   { 
       Html.RenderPartial(Model[i].GetType().Name, Model[i]);
   } %>

这很好用,除了当用户提交表单时,相关的控制器操作方法只是得到一个List<Person>,而不是Person,PersonTypeOne和的列表PersonTypeTwo

这与预期的差不多,因为表单提交不包含足够的信息来告诉默认模型绑定器创建任何实例PersonTypeOnePersonTypeTwo类。

那么,有没有办法从默认的模型绑定器中获得这样的功能呢?

4

1 回答 1

4

您应该只创建单独的模型来绑定到您的输入。您的 ViewModel 和 EditModel 是真正不同的职责,因此应该拥有自己的对象。

于 2010-06-01T16:45:28.103 回答