C# MVC4 webapi中的反序列化/模型绑定不适用于数组
我正在使用新的WebApi,它是MVC4测试版的一部分。我有以下课程:C# MVC4 webapi中的反序列化/模型绑定不适用于数组,c#,asp.net-mvc,model-binding,xmlserializer,asp.net-web-api,C#,Asp.net Mvc,Model Binding,Xmlserializer,Asp.net Web Api,我正在使用新的WebApi,它是MVC4测试版的一部分。我有以下课程: public class Voucher { public string Id { get; set; } public string TableId { get; set; } public Product[] Products { get; set; } } 我的控制器如下所示: public class VouchersController : ApiController { pub
public class Voucher
{
public string Id { get; set; }
public string TableId { get; set; }
public Product[] Products { get; set; }
}
我的控制器如下所示:
public class VouchersController : ApiController
{
public Voucher PostVoucher(Voucher voucher)
{
//....
}
}
在客户端,我使用
XmlSerializer
对数据进行序列化。输出看起来像预期的,并且产品
数组被序列化。如果我发布数据并在postDeceducer
方法中放置断点,我将获得Id
和TableId
的数据,但是产品
为空
。有什么提示我可能做错了吗?ASP.NET Web API测试版中复杂类型和XML的模型绑定/反序列化存在问题。解决此问题的一种方法是“禁用”模型绑定,并为此操作选择“反序列化路径”。上的帖子展示了如何做到这一点
请注意,这是beta版的一个已知问题,将在下一个(RC)版本中修复。只是一个问题,您是否在两个类(凭证和产品)中都添加了可序列化属性?您不需要
[Serializable]
属性,没有任何属性的类(即POCO)工作正常。谢谢您。我拼命想弄明白为什么我的操作很乐意接受JSON,但未能对XML进行反序列化。