so entworfen Dies wird. Wenn Sie F5 drücken, wiederholen Sie, was Sie gerade getan haben, was ein Postback war. Um dies zu verhindern, haben Sie eine endlose Menge von Lösungen wie:
Verwenden Sie eine Sitzungsvariable beim ersten Laden und sobald es das erste Mal gebucht (gespeichert), löschen Sie den Wert. Stellen Sie sicher, dass Sie nach dem Vorhandensein dieses Werts suchen.
// On inital page load for data entry store a key.
// This is a basic example, you should have a session wrapper
Session["Unsaved"] = 1;
// When you do the save logic make sure you check this session variable and save if
// it still exists.
if (Session["Unsaved"] != null)
{
// Save data here
Session.Remove("Unsaved");
}
else
{
// Show message that save has already completed or session has expired.
}
Sie können auch die Kontroll DB Seite tun und stellen Sie sicher, dass Sie nicht identische Daten einfügen (was, wie es in Ihrem Szenario gültig sein könnte möglicherweise nicht funktionieren)
In der Vergangenheit habe ich verhindert habe dies mit B. indem Sie eine Revisionsnummer speichern und die Revisionsnummer mit den geposteten Daten übermitteln. Wenn die Revisionsnummern beim Speichern nicht übereinstimmen (da sie mit jeder Aktualisierung geändert werden und die Überprüfung auf der DB-Seite erfolgt), schlägt die Aktualisierung fehl und ich würde eine Nachricht anzeigen.
Für neue Daten können Sie auch eine Response.Redirect auf eine "vollständige" Seite ausführen, die ihnen aktualisierte Informationen über Erfolg/Misserfolg liefert. Wenn sie auf "Aktualisieren" klicken, wird nur die fertige Seite neu geladen und nicht die Seite, die das Einfügen/Aktualisieren durchgeführt hat.
Auch hier gibt es so viele verschiedene Lösungen. Nichts ist perfekt für jedes Szenario, so dass Sie herausfinden müssen, welche für Sie am besten funktioniert.
Hallo vielen Dank für Ihre schnelle Antwort, und dies ist die einzige Lösung, um dieses Problem zu umgehen? oder gibt es einen besseren Ansatz? – Nagu
F5 ist ein Browserbefehl, der den Browser anweist, die Seite zu aktualisieren. In diesem Fall müssen Sie Ihr Postback erneut einreichen. Wenn Sie dieses Verhalten überschreiben, werden Sie die von den Benutzern erwartete Standard-Browserfunktionalität nicht einhalten. Dies ist ein großes No-No in der UI-Design-Welt. –