MVC Model Binding to a collection where collection does not begin with a 0 index

Posted by FloatLeft on Stack Overflow See other posts from Stack Overflow or by FloatLeft
Published on 2012-05-25T19:03:38Z Indexed on 2012/05/30 16:41 UTC
Read the original article Hit count: 222

I'm trying to perform remote validation on a property of an item within a collection. The validation works OK on the first item of the collection. The http request to the validation method looks like:

/Validation/IsImeiAvailable?ImeiGadgets[0].ImeiNumber=123456789012345

However on the 2nd item where the url looks like below, the validation doesn't work

/Validation/IsImeiAvailable?ImeiGadgets[1].ImeiNumber=123456789012345

Now I'm pretty sure the reason for this, is that binding wont work on a collection that doesn't begin with a zero index.

My validation method has a signature as below:

public JsonResult IsImeiAvailable([Bind(Prefix = "ImeiGadgets")] Models.ViewModels.ImeiGadget[] imeiGadget)

Because I'm passing an item within a collection I have to bind like this yet what I'm really passing is just a single value.

Is there anyway I can deal with this other than just binding it as a plain old query string.

Thanks

Edit: This is the quick fix to get the Imei variable but I'd rather use the model binding:

string imeiNumber = Request.Url.AbsoluteUri.Substring(Request.Url.AbsoluteUri.IndexOf("=")+1);

© Stack Overflow or respective owner

Related posts about asp.net-mvc

Related posts about asp.net-mvc-3