We are in the process of implementing an MVC 2 web application, and the requirement is the ability for an administrator of the site to "design" screens. The idea is the admin user would select from a list of predefined fields and manipulate their selection's display order (top to bottom on the page). Once the page is designed and saved, a user of the site could then navigate to the page and view the designed form.
What is the best way to implement this?
We've been kicking around a couple of options:
1) Have the admin screen persist its designed pages as an actual .aspx file. I assume we could then create links to the built page by working with the routing engine. This approach would take advantage of JIT Caching (right?), and would look and behave just like a regular MVC application. The issue I have with this approach is that it seems a little hacky to modify pages at runtime. I worry I might have a stale version of the page compiled and running after the page has been modified by the admin.
2) Persist the admin screen changes in the database, and build the view in the application tier and render it to the client. I'm not sure what the options are here, and would gladly accept any suggestions.
Obviously there are more issues here than just the ability to build the UI: validation, persistence, attaching complex business rules etc. I'm just trying to focus on the first steps.