如何使用后退按钮支持创建ASP.NET MVC向导?

我正在使用ASP.NET MVC创建一个应用程序,我需要在我的一个页面上使用向导样式界面。

这是我到目前为止所做的事情:
我创建了一个包含5个div的页面。 所有都在css文件中设置了“display:none”。 当用户第一次点击页面时,我使用jquery显示第一步使用:

$("#callStep1").show(); 

第一步有一个选择列表,当用户进行选择时,执行以下代码:

 $("#callStep1").hide(); $("#callStep2").show(); 

这一直持续到用户进入步骤5并单击提交按钮。 一切都工作得很好,除非我在第2,3,4,5步并按下后退按钮,它让我一直回到我之前的页面,当时我真的只想进入上一步。

我怎样才能做到这一点? 我看过一些使用“#”并在页面上创建链接的例子,但不确定是否有更好的方法。

有什么建议?

如果您在向导页面上并不完全需要AJAX,则可以通过在成功的表单POST后返回不同的视图来执行此操作。

在控制器中:

 [AcceptVerbs(HttpVerbs.Get)] public ActionResult DoSomethingLong(int somethingId, int step) { MyModelType myModel = MyModelFactory.Fetch(somethingId); switch(step) { case 1: return View("Step1", myModel); break; case 2: return View("Step2", myModel); break; } } [AcceptVerbs(HttpVerbs.Post)] public ActionResult DoSomethingLong(int somethingId, int step) { MyModelType myModel = MyModelFactory.Fetch(somethingId); if (TryUpdateModel(myModel)) { //Successful update. Send to next step. return RedirectToAction("DoSomethingLong", new {somethingId = somethingId, step = step + 1} } else { //Update failed, redisplay current View with validation errors. return View(myModel); } } 

以完全不引人注目且易于访问的方式(也称为Hijax)实现Ajax驱动的链接,支持浏览器的后退/前进导航按钮和书签。 同样增强可比较的DHTML驱动链接。

http://www.stilbuero.de/jquery/history/#Chapter_3

Hijax(维基百科)