目前我有一个接收对象类型的API,如下所示。
public HttpResponseMessage Post(Job job) {}
当收到与Job
类型匹配的直接(或部分)对象时,一切都按预期工作。问题是我们正在修改JSON对象以在主体中包含更多信息,这阻止了序列化程序知道如何处理它。
我们的新要求如下。
{
"httpHeaders":{
},
"payload":{
}
}
我们收到的“旧”对象现在位于“有效载荷”中。我是否需要覆盖方法,可能是Media Formatter?
由于
答案 0 :(得分:4)
创建一个包含Job类型的类型作为名为Payload的属性,另一个属性名为HttpHeaders,包含预期的模型结构。我不知道为什么你要在有效载荷体中发送Http头。
模型绑定将尝试将请求主体的结构与预期模型的结构相匹配。在这种情况下,您将从期望类型Job,到接受包含Job的类型。所以,你会创建一个这样的超类型:
public class InputModel {
public Job Payload {get;set;}
public HeaderType HttpHeaders {get;set;}
}
然后,ASP.NET模型绑定将相应地填充对象。