Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc ASP.NET MVC 4-发布多态数据对象_Asp.net Mvc_Polymorphism - Fatal编程技术网

Asp.net mvc ASP.NET MVC 4-发布多态数据对象

Asp.net mvc ASP.NET MVC 4-发布多态数据对象,asp.net-mvc,polymorphism,Asp.net Mvc,Polymorphism,我有一个viewmodel,它由几个属性组成: public class FooDataViewModel : IValidatableObject { /* Several Properties working as expected */ public ICollection<Foo> Foos {get; set;} /* Validation working as expected */ } 但我有一些对象是Foobar: public class FooBar : F

我有一个viewmodel,它由几个属性组成:

public class FooDataViewModel : IValidatableObject
{
/* Several Properties working as expected */

public ICollection<Foo> Foos {get; set;}

/* Validation working as expected */
}
但我有一些对象是Foobar:

public class FooBar : Foo, IValidatableObject
{
/* Just a few more properties and some conditional validation */
}
我为Foo和FooBar创建了一个自定义编辑器模板。对于我的编辑视图,我只需使用“@Html.EditorFor(m=>m.Foos)”,就会显示Foo和FooBar的编辑器。但是当我提交到我的HttpPost方法时,只创建了Foo对象,并且FooBar特定的数据丢失了。如何确保创建了FooBar对象

如何确保创建了FooBar对象


您需要在请求中包含此信息,并编写一个能够使用此信息并实例化适当类型的自定义模型绑定器。我在这里说明了这个概念:

这个链接很有用,帮助我解决了问题。这个问题最初是针对MVC3的,所以我会继续问:是否有任何适用于MVC4的更改/优化?不,MVC4在这方面绝对没有任何更改/优化。
public class FooBar : Foo, IValidatableObject
{
/* Just a few more properties and some conditional validation */
}