2015-05-19 7 views
5

Ich habe eine Anwendung in MVC5 mit C# erstellt. Ich habe 5 Drop-downs aus meiner Sicht.Browser zurück Schaltfläche füllt Dropdown-Wert in MVC-Anwendung nicht

Diese Dropdown-Listen sind Teilansichten. Inhalt von Dropdown-Listen: -

1) Liste der Städte

2) Liste der Ereignisse.

3) Liste der Veranstaltungsorte

4) Liste der Termine

5) Liste der Zeiten

so, wenn Seite wird zuerst die Städte geladen sind bevölkert. Wenn ich eine Stadt auswähle, wird das zweite Dropdown-Feld mit einer Liste von Ereignissen ausgefüllt. und jetzt, wenn ich ein Ereignis auswähle, wird das nächste Dropdown mit Orten gefüllt. und der selbe Prozess findet für alle Dropdowns statt (natürlich gibt es kein Änderungsereignis für die Zeitauswahl, wie es zuletzt ist).

Jetzt gibt es eine Schaltfläche zum Senden, wenn ich auf diese Schaltfläche klicke, leitet es mich auf neue Seite mit Controller-Methode um. Signature ist wie folgt

public ActionResult Redirect(string hdn_city, string hdn_event, string hdn_date, string hdn_venue, string hdn_time) 
{ 
    string urls = String.Format("mysite.com?cid={0}&eid={1}&did={2}&vid={3}&tid={4}", hdn_city, hdn_event, hdn_date,hdn_venue,hdn_time);    
    return Redirect(urls); 
} 

jetzt, wenn ich dieses Formular abgesendet ich umgeleitet werde zu mysite.com mit allen params in Query-String übergeben.

Jetzt ist mein Problem, dass es erforderlich ist, wenn nach dem Erreichen von mysite.com ich die Browser-Zurück-Taste drücke, sollten die Werte von dropdown bestehen bleiben. Ich muss den ganzen Prozess nicht noch einmal wiederholen. Bitte schlagen Sie mir mögliche Alternativen vor.

Antwort

0

Sie können Cookie oder TempData oder History Javascript (nur Html5) verwenden. Oder Sie können ein PostBack am Ende für den Wert im Browser speichern.

Sie können nur ausgewählte Werte speichern und verknüpfte Daten erneut laden.

Postback wie folgt: <form action="thispage.aspx?dropdownvalue1=***&dropdownvalue2=**"></form>.

0

Der einfachste Weg, an den ich denken könnte, wäre Abfrage-String zum Speichern ausgewählter Werte zu verwenden. Zum Beispiel wenn Sie eine Stadt auswählen, Umleitung zu

/selectionPage? city = selectedCity

Dann, wenn ein Ereignis auszuwählen, Umleitung zu

/selectionPage? city = selectedCity & event = selectedevent

Und so weiter. Auf diese Weise haben Sie alle ausgewählten Werte in der Abfragezeichenfolge, so dass das Zurück/Vorrücken im Browserverlauf unverändert funktioniert.

+0

Ich legte den Haltepunkt auf Aktionsmethode in der Steuerung. aber wenn ich die Browser-Zurück-Taste benutze, wird der Haltepunkt nicht getroffen. – iGod

+1

Wegen des Browser-Cache. Sie können dies für eine bestimmte Aktion deaktivieren (mithilfe des action-Attributs, siehe [hier] (http://stackoverflow.com/a/1705113/4910910)). Aber warum willst du das tun? Wenn die Seite zustandslos ist (d. H. Die Dropdown-Werte werden basierend auf der Abfragezeichenfolge gefüllt), ist es in Ordnung, sie zwischenzuspeichern. –

+0

Danke Alexandr Sugak. Ich denke, ich muss irgendwie Abfragezeichenfolge verwenden. Ich warte auf jede Lösung, die mir helfen kann, das zu vermeiden. – iGod

Verwandte Themen