模型绑定和派生模型类
-
22-10-2019 - |
题
当您拥有从他人那里继承的模型类时,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
课程。
那么,有什么方法可以从默认模型活页夹中获取此类功能吗?
解决方案
您应该只创建单独的模型即可绑定到输入。您的ViewModels和Editomodels是真正不同的责任,因此应有自己的对象。
不隶属于 StackOverflow