Ich habe ein Szenario, in dem ich auf einer Ansichtsseite bin und eine Aktionsmethode in Controller A aufrufe, die über eine RedirectToAction-Rückgabe eine andere Aktion in Controller B aufruft, und diese Aktion gibt die Ansicht zurück, dass Im bereits eingeschaltet ist.
Ich möchte, dass die Seite aktualisiert wird, um die Aktualisierungen des Systemstatus dieser beiden Aktionen widerzuspiegeln, aber MVC scheint zu entscheiden, dass die Seite nicht aktualisiert werden muss, wenn ich zur selben Ansicht zurückkomme. Wie erzwinge ich eine Aktualisierung?
Beispiel:
%Vor%Ich hatte ein ähnliches Problem, aber es begann mit einem Ajax-Aufruf von der View-Datei zur Controller-Datei. Der Controller hat eine Aktualisierung der DB durchgeführt und dann RedirecToAction aufgerufen, um die Ansicht zu aktualisieren. Aber keine Erfrischung ... Keine der obigen Antworten hat mir geholfen. Der einzige Weg, den ich lösen konnte, war, eine andere Methode zu verwenden, um eine Aktion aus der View-Datei aufzurufen:
%Vor%Von diesem Punkt an hat alles so funktioniert, wie ich es erwartet hatte.
Ich werde hier ein bisschen vage sein, da ich mir nicht wirklich sicher bin, aber ich habe schon mal etwas in dieser Richtung gesehen (und niemand antwortet darauf). Es ist möglich, dass das Problem darin besteht, dass die Update-Transaktion vor der Weiterleitung noch nicht bearbeitet oder geleert wurde. Zum Beispiel wartet NHibernate manchmal auf ein Commit für eine Aktualisierung der Datenbank, bis ich denke, nachdem die Antwort verarbeitet wurde.
Wenn dies der Fall ist, nimmt das, was Sie in Controller A holen, einfach nicht die Änderungen auf. Vielleicht könnten Sie versuchen, den Datenbank-Commit irgendwie zu erzwingen.
Tut mir leid, aber das ist die einzige Möglichkeit, die mir einfällt. Sie müssen Ihr google-fu-Outfit und Stirnband anziehen!
Ich hatte ein Problem wie dieses bei meinem Projekt. Was passieren könnte, nehme ich an, dass Sie Ihre Ansicht in ActionInControllerB aktualisieren, wenn Sie RedirectToAction dann diese Ansicht löschen. Ich hatte ein Problem wie dieses, wo ich nicht in meinem GET: controller aktualisiert wurde und nur in den POST: Controller aktualisierte. Daher wollte ich nicht, was ich zeigen wollte. Also würde ich vorschlagen, dass Sie nur sicherstellen, dass Ihre Änderungen am Display an der richtigen Stelle passieren.
Ich bin ziemlich neu bei MVC, also könnte ich deine Frage einfach falsch verstehen und wenn es mir leid tut. Aber ich hoffe, das hilft dir wenigstens ein bisschen.
Tags und Links asp.net-mvc asp.net