Asp.net mvc ASP.NET MVC 4-发布多态数据对象
我有一个viewmodel,它由几个属性组成: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
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 */
}