Advice with Dynamic Forms in ASP.NET MVC
.net, asp.net, asp.net-mvc, dynamic-forms, http
Solution
I wrote a class library that basically does exactly what my psuedocode in my question describes. It works great.
EDIT:
I finally got around to cleaning up my class library. I have added some new features and created a fairly well documented demo web application.
All of this is hosted here on CodePlex. I hope this helps someone.
Problem
I am working on rendering a dynamic form in an ASP.NET MVC view that will meet these requirements: - Fields can be validated - State is preserved when the form is invalid I am looking into creating a custom model binder to achieve this. I am generally planning to do this: - Form fields are defined with these properties - Prompt (label next to fields) - Type (text, checkboxlist, radiolist, etc.) - Choices (for list fields) - IsRequired - RegularExpression (for text fields) - Display Options - Collection of field definitions are sent from the controller to the view - Fields are rendered into HTML and sent to the browser - Form is sent back to the server - A custom model binder binds the form to a collection of field definitions that now contains the submitted values - Each field is validated - If required -> must have a value - If RegEx -> must match - For each invalid field, an error message is added to modelstate - The controller decides what to do - If all fields are valid - Do whatever with the fields and their values - If 1 or more fields are invalid - Send the collection of fields back to the view - Render the fields again, with their previously attempted values - Show the validation summary I'm not sure if I am doing this in the best or easiest way. Will this approach give me a lot of problems or even work? What can I do to improve upon it?