MVC4 webapi中的反序列化/模型绑定不适用于数组

我正在使用新的WebApi,它是MVC4 beta的一部分。 我有以下课程:

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序列化数据。 输出看起来像预期的那样, Products数组是序列化的。 如果我发布数据并在PostVoucher方法中放置一个断点,我会获得IdTableId的数据,但Productsnull 。 什么暗示我可能做错了什么?

ASP.NET Web API Beta中的复杂类型和XML的模型绑定/反序列化存在问题。 解决此问题的一种方法是“禁用”模型绑定,并为此操作选择“反序列化路径”。 http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/27/disabling-model-binding-on-asp-net-web-apis-beta.aspx上的post展示了如何做到这一点。

请注意,这是beta的已知问题,将在下一个(RC)版本中修复。