【发布时间】:2012-10-12 12:08:58
【问题描述】:
我要求用户编辑潜在客户的报价列表,报价可以是不同的类型,例如:
- QuoteForProductTypeA
- QuoteForProductTypeB
所有报价类型共享一个公共基类,例如 QuoteBase。
我的报价在前端显示良好,并且似乎也回发了正确的数据。
但是,在服务器上它显然不知道要使用哪个子类,所以只使用基类。
我认为我需要某种用于 WebApi 的自定义模型绑定器来检查隐藏字段,例如包含集合中对象类型的 ModelType,模型绑定器然后创建此类型的新对象并绑定属性从我发布的值到这个对象。
然而,我被困在这一点上,几乎没有关于如何做到这一点的文档/博客。
我检查了 WebApi 的源代码,看看我是否可以扩展默认模型绑定器,但任何默认值都是密封类。
我只能通过外观实现 IModelBinder,我可以通过查找名为 ModelType 的值来创建正确的模型类型,但是我不确定如何填充子类中的其余值(如果有)是我继承的默认模型绑定器,我只调用基类绑定方法。
【问题讨论】:
标签: c# knockout.js asp.net-web-api model-binding