In meiner Anwendung speichere ich ein Objekt in einer Sitzung, die an einen Webdienst übergeben wird, um Daten zur Anzeige in einer Tabelle zurückzugeben. Wenn die Sitzung existiert, wird der Benutzer nicht aufgefordert, neue Daten einzugeben. Wenn ein Benutzer jedoch einen Link namens "Neue Liste" auswählt, werden die Sitzungsdaten gelöscht und der Benutzer aufgefordert, neue Daten einzugeben.C# mvc: RedirectToAction() und Browser-Navigationsschaltflächen
<a href="@Url.Action("NewList", "Alert")"> New List</a>
Welche diese Controller Aktion auslösen:
In meinem Code, ich habe einen Anker wie so definiert
public ActionResult NewList()
{
Session["new_list"] = "y";
return RedirectToAction("List");
}
Und dann weiterhin diese Aktion auszuführen:
public ActionResult List()
{
if ((string)Session["new_list"] == "y")
{
//clear session variables, load fresh data from API
}else{
//display blank table. Ask user to input data to retrieve a list
}
....
}
Jetzt ist das Problem, das ich habe, wenn ein Benutzer weg von der Liste Seite navigiert und dann zurück wi navigiert Wenn der Zurück-Knopf des Browsers gedrückt wird, ruft er immer noch newlist
an. In der Geschichte des Browsers speichert List
newlist
, die verursacht, die Sitzungsvariable zu löschen. Was kann ich tun, um dies zu verhindern oder gibt es einen anderen Mechanismus in C# mvc, der mir helfen kann, den gewünschten Effekt zu erzielen?
Setzen Sie es in einen Cookie. – CodingYoshi