I do not believe that there is a better / correct way, but the way I will do it is ...
Each master gets his own page. Each step gets its own div. All steps are in the same form.
The previous / next buttons will hide / show the div at each step of the process. The submit button of the last step represents the entire form. It would be pretty trivial to implement this with jQuery, and it would be easy to maintain, since all the steps in the wizard are in the same ViewPage.
On the controller side, you have two controller methods: the version of HttpVerbs.Get, which will prepare the form for viewing, and the version of HttpVerbs.Post, which will take the FormsResult form and analyze it to get the information needed to send the user responds to storage / other processes.
Wow, your boss stinks.
This answer almost elegantly works for those ****** for which javascript is disabled (yes, both of them). You can configure it to hide the next previous buttons with CSS and show them in your javascript code. Thus, people with javascript see the wizard, and people without javascript will see the whole form (without the next / prev buttons).
Another option is to create a view for each step of the wizard. You can save intermediate form results in a session. This method will take a lot of time and effort to implement, which means that you could probably squeeze some overtime from your boss, when you demonstrate in about twenty minutes the effort that you spend during lunch, how easy it is to implement a javascript route .
Will Nov 17 '08 at 22:29 2008-11-17 22:29
source share