Reputation: 9917
I have been tasked with the job of creating a form that allows a user to add one or more groups of answers to it. For example, they will make a selection from a drop down which will then add another set of inputs to the form. They can repeat this process X number of times.
What's the best way to handle this in terms of processing on the server?
I understand I could probably bind each element to a list, and then loop through each list knowing each value in each list was 'linked' by index.
But is there a better way? Hope this makes sense. I don't have example code as of yet.
Upvotes: 5
Views: 9450
Reputation: 39501
Take a look at Phil Haack's great article about model binding to a list in mvc. If your dynamically added..
another set of inputs
..is returned from ajax call to controller, you can use this in conjunction with HtmlFieldPrefix Property and generate desired set of inputs with indexed name. Then, MVC will automatically bind your values as explained in post.
Upvotes: 3
Reputation: 17784
have a look at following articles they are worth your consideration
http://blog.stevensanderson.com/2010/01/28/editing-a-variable-length-list-aspnet-mvc-2-style/
http://zahidadeel.blogspot.com/2011/05/master-detail-form-in-aspnet-mvc-3-ii.html
http://ivanz.com/2011/06/16/editing-variable-length-reorderable-collections-in-asp-net-mvc-part-1/
if you are into knockout js you can also consider
http://blog.stevensanderson.com/2010/07/12/editing-a-variable-length-list-knockout-style/
Upvotes: 2