我正在使用新的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
方法中放置一个断点,我会获得Id
和TableId
的数据,但Products
为null
。什么提示我可能做错了什么?
答案 0 :(得分:6)
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上的帖子显示了如何做到这一点。
请注意,这是测试版的已知问题,将在下一个(RC)版本中修复。