2009-02-26 5 views
3

Ich erstelle eine App mit ASP.NET MVC und ich brauche eine Assistenten-Stil-Schnittstelle auf einer meiner Seiten.Wie erstelle ich einen ASP.NET MVC-Assistenten mit Unterstützung für die Schaltfläche "Zurück"?

Hier ist was ich bisher tun:
Ich habe eine Seite mit 5 divs erstellt. Alle haben "display: none" in der CSS-Datei eingestellt. Wenn der Benutzer die Seite zum ersten Mal trifft, verwende ich jquery den ersten Schritt zu zeigen, mit:

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

Der erste Schritt eine Auswahlliste hat und wenn der Benutzer eine Auswahl wird der folgende Code macht ausgeführt:

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

Dies wird fortgesetzt, bis der Benutzer zu Schritt 5 gelangt und auf die Schaltfläche Senden klickt. Alles funktioniert gut, außer wenn ich auf Schritt 2, 3, 4, 5 bin und den Zurück-Knopf drücke, es bringt mich den ganzen Weg zurück zu der Seite, auf der ich vorher war, als ich wirklich nur zum vorherigen Schritt gehen möchte.

Wie kann ich das schaffen? Ich habe einige Beispiele mit "#" gesehen und Links auf der Seite erstellt, bin mir aber nicht sicher, ob es einen besseren Weg gibt.

Irgendwelche Vorschläge?

Antwort

4

Wenn Sie absolut nicht AJAX auf der Seite des Assistenten benötigen, ist es möglich, dies zu tun, indem sie verschiedene Ansichten nach einer erfolgreichen Form POST zurück.

In der Steuerung:

[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

Implementieren Ajax angetrieben Links in eine völlig unauffällig und leicht zugänglicher Weise mit Unterstützung für den Browser des vor/zurück Navigationstasten und Lesezeichen (auch als Hijax bekannt). Verbessern Sie vergleichbare DHTML-gesteuerte Links auch.

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

Hijax (wikipedia)

+1

Die faulen der Link, jemand etwas Obst frisch auf sie werfen. – MrBoJangles

Verwandte Themen