What is the best way to bind a dynamically created collection of elements in an MVC view to a collection in MVC 4. I know previous versions have required that the elements look like this:
<input name="Categories[0].CategoryID" type="hidden" value="123" />
<input name="Categories[0].CategoryName" type="hidden" value="Music" />
<input name="Categories[1].CategoryID" type="hidden" value="456" />
<input name="Categories[1].CategoryName" type="hidden" value="Movies" />
But when you are dynamically adding new elements and removing them, things get out of sequence pretty quickly.
Does MVC 4 add a way to bind to a non-sequential collection?
Non sequential collection indices supported since MVC2 you just need to have a separate hidden field which will hold the index with the name
schema: CollectionName.Index
:
E.g:
<input type="hidden" name="Categories.Index" value="3" />
<input name="Categories[3].CategoryID" type="hidden" value="123" />
<input name="Categories[3].CategoryName" type="hidden" value="Music" />
<input type="hidden" name="Categories.Index" value="1" />
<input name="Categories[1].CategoryID" type="hidden" value="456" />
<input name="Categories[1].CategoryName" type="hidden" value="Movies" />
You can find more info about the topic here: Model Binding To A List
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With