我正在使用ASP.NET MVC创建一个应用程序,我需要在我的一个页面上使用向导样式界面。
这是我到目前为止所做的事情:
我创建了一个包含5个div的页面。所有在css文件中都设置了“display:none”。当用户第一次点击页面时,我使用jquery显示第一步:
$("#callStep1").show();
第一步有一个选择列表,当用户做出选择时,执行以下代码:
$("#callStep1").hide();
$("#callStep2").show();
这一直持续到用户进入步骤5并单击提交按钮。一切都工作得很好,除非我在第2,3,4,5步并点击后退按钮,它一直带我回到我之前的页面,当时我真的只想进入上一步。
我该如何使这项工作?我看过一些使用“#”并在页面上创建链接的例子,但不确定是否有更好的方法。
有什么建议吗?
答案 0 :(得分:4)
在a中实现Ajax驱动的链接 完全不引人注目且容易接近 方式(也称为Hijax)用 支持浏览器的后退/前进 导航按钮和书签。 增强可比的DHTML驱动链接 同样。
答案 1 :(得分:4)
如果您在向导页面上并不完全需要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);
}
}