2009-02-26 28 views
3

私はASP.NET MVCでアプリケーションを作成しています。自分のページの1つにウィザードスタイルのインターフェースが必要です。戻るボタンをサポートしたASP.NET MVCウィザードを作成するにはどうすればよいですか?

これは私がこれまで行っていることです:
5つのdivでページを作成しました。すべては、CSSファイルに "display:none"が設定されています。

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

最初のステップは、選択リストを持っており、ユーザーが選択を行う際に以下のコードが実行される:ユーザーが最初にページをヒットすると、私が使用して最初の一歩を表示するためにjqueryのを使用し

$("#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); 
    } 
} 
4

ブラウザの戻る/進む ナビゲーションボタンやブックマークのため サポートして(もHijaxとして知られている) 完全に邪魔にならないし、アクセス可能 的にAjaxの駆動リンクを実装します。 同等のDHTML駆動リンクを強化する

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

Hijax (wikipedia)

+1

リンクの腐った、誰かがその上に新鮮な果物を投げます。 – MrBoJangles

関連する問題