I have a page that requires the user to go through several steps, however step is performed on the same ASPX page with different panels being displayed.
However this is a requirement that each step has a different URL, this could be a simple as a query string parameter, for example:
Step 1:
/member/signup.aspx?step=1
Step 2:
/member/signup.aspx?step=2
Step 3:
/member/signup.aspx?step=3
However I don’t want to have to redirect the user to the new URL each time they continue to the next step, this would involve a lot of redirecting and also a switch statement on the page load to work out which step the user is on.
It would be better if I could alter the URL that is displayed to the user when the original request is sent back to the user, i.e. the user click “next” on step 1 the page then does some processing and then alters response so that the user then sees the step 2 URL but without any redirection.
Any ideas would be greatly appreciated.
It would be a little more complicated than you probably want, but you could achieve this effect with the PostBackUrl property of the submitting button. I’m assuming each panel has its own “submit” button, and they could all use this property to “advance” the process. The drawback is that in order to get to submitted controls, you’d need to use the Page.PreviousPage property in order to access any controls and their values.