【发布时间】:2013-09-21 02:11:01
【问题描述】:
我正在尝试发布一个值列表或数组,这些值会自动反序列化为一个名为 RejectModel 的复杂对象。这在以 JSON 格式接收数据时非常有效,但在发送 XML 数据时,自动序列化程序会将拒绝列表设为 NULL。
我尝试使用默认的 Xml 序列化程序而不是 dataContract 序列化程序。这给了我以下错误:
没有 MediaTypeFormatter 可用于读取“List”1 类型的对象 来自媒体类型为“application/xml”的内容。
我尝试将列表更改为具有相同结果的数组。
我觉得我只是没有正确命名包含 XML 的元素。任何建议将不胜感激。
发布声明。接受rejectModels 列表。
public HttpResponseMessage Post(List<RejectModel> rejectionList)
{
if (rejectionList == null)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "The request was empty, malformed, or did not include an array of values.");
}
else if (rejectionList.Rejections.Length == 0)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "An empty array was passed.");
}
}
拒绝模型,我想接受这些列表/数组
[DataContract]
public class RejectModel : BaseModel
{
[Required]
[DataMember(IsRequired = true)]
public int LeadId { get; set; }
[DataMember]
public int? PropertyId { get; set; }
[DataMember]
public string PartnerPropertyId { get; set; }
[DataMember]
public string OriginalSource { get; set; }
[DataMember]
public DateTime OriginalReferralDate { get; set; }
}
我的许多请求尝试之一。我已经为“rejectList”尝试了许多标签名称。我在请求标头中包含“接受:应用程序/xml”。
<?xml version="1.0" encoding="UTF-8"?>
<rejectList>
<RejectModel>
<LeadId>10102085</LeadId>
<PropertyId>60278</PropertyId>
</RejectModel>
</rejectList>
【问题讨论】:
-
你能用你将这个发布到方法的代码更新问题吗?
标签: .net xml serialization asp.net-web-api