Deserialization / model binding in MVC4 webapi does not work with arrays

半腔热情 提交于 2019-12-29 07:53:04

问题


I'm using the new WebApi which is part of MVC4 beta. I have the following class:

public class Voucher
{
    public string Id { get; set; }
    public string TableId { get; set; }
    public Product[] Products { get; set; } 
}

My controller looks like this:

public class VouchersController : ApiController
{
    public Voucher PostVoucher(Voucher voucher)
    {
          //....
    }
}

On the client side I serialize the data using an XmlSerializer. The output looks like expected and the Products array is serialized. If I post the data and put a break point inside the PostVoucher method, I get the data for Id and TableId, but Products is null. Any hint what I might be doing wrong?


回答1:


There is an issue with the model binding / deserialization of complex types and XML in the ASP.NET Web API Beta. One way to solve this issue is to "disable" model binding, and select the "deserialization path" for this action. The post at http://blogs.msdn.com/b/carlosfigueira/archive/2012/02/27/disabling-model-binding-on-asp-net-web-apis-beta.aspx shows how to do that.

Notice that this is a known issue for beta, and will be fixed in the next (RC) release.



来源:https://stackoverflow.com/questions/9592838/deserialization-model-binding-in-mvc4-webapi-does-not-work-with-arrays

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!