ASP.NET MVC3: Can you post and bind an array of objects?
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.
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.
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/
精彩评论