2009-02-26 76 views
3

我正在用ASP.NET MVC創建一個應用程序,並且我需要在我的一個頁面上使用嚮導樣式界面。如何使用後退按鈕支持創建ASP.NET MVC嚮導?

以下是我到目前爲止所做的:
我創建了一個包含5個div的頁面。所有在css文件中設置「display:none」。當用戶點擊該頁面的第一次,我用jQuery的使用展現的第一步:

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

的第一步有一個選擇列表,當用戶進行選擇,執行以下代碼:

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

這一直持續到用戶進入第5步並單擊提交按鈕。一切工作正常,除非如果我在第2,3,4,5步,並點擊後退按鈕,它會把我帶回到之前的頁面,我真的只想去上一步。

我該如何做這項工作?我見過一些使用「#」和在頁面上創建鏈接的例子,但不知道是否有更好的方法。

有什麼建議嗎?

回答

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); 
    } 
}