MVC4 not binding a list of basic types

Posted by admanb on Stack Overflow See other posts from Stack Overflow or by admanb
Published on 2012-12-03T23:11:22Z Indexed on 2012/12/04 17:05 UTC
Read the original article Hit count: 149

I cannot, for the life of me, get this data to bind. Here's my JavaScript:

var params = { 'InvItemIDs': ["188475", "188490"]};
$.post("api/Orders/OrderFromInventory?" + $.param(params))

and the Controller action:

public HttpResponseMessage OrderFromInventory(IList<int> InvItemIDs)
{
    return new HttpResponseMessage();
}

I've built the query string so that it's sending:

?InvItemIDs=188475&InvItemIDs=188490

as well as

?InvItemIDs[]=188475&InvItemIDs[]=188490

and even

?InvItemIDs[0]=188475&InvItemIDs[1]=188490

and none of them are binding. InvItemIDs is always null. What am I doing wrong?

EDIT:

So it turns out all this is a bug (or something) in the new Web API controller code in MVC4. As soon as I moved the exact same code over to a standard controller it started working.

I'm still interested if anyone has any insight as to why the Web API would break this binding.

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about jquery-ajax