我的 ASP MVC 3 项目中有以下类层次结构。一些条目可以有容器,而那个容器里面可以有一些内容。容器和内容类是抽象类。
我需要从浏览器接收 json 请求,并将其绑定到属于 Entry 类的模型。问题是 DefaultModelBinder 类没有正确创建 Entry 模型类,因为它不知道它应该是什么类型的具体容器。例如:
var dataaa = { Name: 'Some Name', Containers: [{ ContainerId: 0}] };
$.ajax({
url: 'Add',
type: "POST",
data: JSON.stringify(dataaa),
contentType: 'application/json; charset=utf-8',
success: function (data) {
alert('hello');
});
+
[HttpPost]
public string Add(Entry entry)
{
return "foo";
}
以下请求导致服务器异常: 无法创建抽象类。我可以将类型字段添加到 json 请求中,例如:
{ Name: 'Some Name', Containers: [{ Type: 'FullContainer', ContainerId: 0}] };
如何指示模型绑定机制将Type字段设置为'FullContainer'的对象映射到FullContainer类?