Aktualisierung der Seite ist das abfeuern der Ereignisses wieder
IN asp.net wenn ich ein Formular Einreichen und aktualisieren Sie Sie, die Daten erneut wieder?
Gibt es eine Möglichkeit in C# abfangen der Seite Aktualisierung-Ereignis " beim laden der Seite??
sind Sie auf aktualisieren der Seite F5 drücken im browser ??
ja und wenn ich das mache, die zuvor gefeuert-Ereignis wird erneut ausgelöst
ja und wenn ich das mache, die zuvor gefeuert-Ereignis wird erneut ausgelöst
InformationsquelleAutor Paras | 2011-05-16
Du musst angemeldet sein, um einen Kommentar abzugeben.
ASP.NET nicht bieten eine Möglichkeit, es zu tun direkt.
Gibt es ein paar Techniken, auf der anderen Seite, zur Vermeidung einer doppelten Unterwerfung:
Redirect nach Einreichung. Das ist das Schlimmste. Auch wenn Sie es vermeidet doppelte Unterwerfung, es ist nicht akzeptabel in einer modernen web-Anwendung aus Sicht des Benutzers.
Track-Einreichungen pro form pro Sitzung. Wenn der Benutzer ein Formular abschickt, für die erste Zeit, denken Sie daran diese in der Sitzung. Wenn eine andere Vorlage geschieht, versuchen zu bestimmen, ob Sie verworfen werden muss oder nicht (in manchen Fällen, muss es nicht; zum Beispiel, wenn ich Editiere meine Antwort auf StackOverflow einmal, ich wäre in der Lage, es zu tun, zweimal, wenn ich muss).
Deaktivieren Vorlage mit JavaScript, nachdem die erste Vorlage. Dies verhindert in einigen Fällen die situation, wenn entweder der Benutzer einen Doppelklick auf die Vorlage Taste, oder klickt es zum ersten mal, wartet, denkt Sie, dass das Formular wurde nicht übermittelt, damit Sie für die zweite Zeit. Natürlich, verlassen Sie sich nicht auf dieses: JavaScript kann deaktiviert werden, es wird auf Doppel-klicken Sie aber nicht auf die F5-Taste aktualisieren, und in allen Fällen die Technik ist nicht völlig zuverlässig.
Als illustration, lassen Sie uns versuchen zu implementieren, die zweite.
Sagen wir, wir haben eine Kommentar-box
this.textBoxComment
lassen die Benutzer hinzufügen einen neuen Kommentar auf eine Seite, ein blog. Die Einreichung erfolgt über:Wenn der Benutzer klickt doppelt wird der Kommentar doppelt gepostet.
Nun fügen wir einige session-tracking:
In diesem Fall, der Benutzer wird in der Lage sein, um einen Kommentar abgeben nur einmal. Jeder andere Kommentar wird automatisch verworfen.
Das problem ist, dass die Benutzer, können Sie Kommentare hinzufügen, um mehrere blog-Beiträge. Wir haben zwei Möglichkeiten zu erlauben. Die einfachen zurücksetzen der session-variable auf jeder non-postback-Anfrage, aber dies ermöglicht es dem Benutzer, senden Sie eine post auf einer Seite, laden Sie eine andere Seite als hit refresh auf dem ersten, also dem Absenden der Kommentar zweimal, aber nicht in der Lage, um einen Kommentar auf der zweiten Seite nicht mehr.
Den fortgeschrittenen ist zu verfolgen in der Sitzung die Liste der Seiten, wo der Kommentar abgegeben wurde.
Akhtar: ja, danke, hab ich völlig falsch verstanden, die Frage. Die Antwort ist jetzt bearbeitet.
Nur so ein Gedanke. Was ist, wenn wir leiten es an derselben Seite. akzeptierte Ansatz oder nicht?
siehe Punkt 1: "Umleitung nach Einreichung. [...] es ist nicht akzeptabel in einer modernen web-Anwendung aus Sicht des Benutzers." Egal, auf welcher Seite Sie umleiten.
InformationsquelleAutor Arseni Mourzenko
Könnten Sie, wenn es irgendeinen Punkt in Ihrem Geist, machen die Seite aktualisiert sich automatisch nach dem Absenden des Formulars die Seite neu zu laden entfernen allen text aus Textfelder etc. Sie tun dies, indem Sie den folgenden code ->
Page.Redirect(Request.RawUrl);
in den Boden des submit-Methode.InformationsquelleAutor
War ich immer dasselbe problem und habe es behoben, indem session tracing.
Und ich denke, es ist einfach und weniger zeitaufwendig Weg, um dieses problem zu lösen.
InformationsquelleAutor Tyririk
zum Beispiel:
wenn Sie klicken Sie auf die Schaltfläche " system fangen die Veranstaltung 'button_click'.
wenn Sie die Seite aktualisieren, das system erneut ausführen wieder das gleiche Ereignis.
don t haben dieses problem, in Ihre Veranstaltung einfügen :
auf Ihre Veranstaltung
ist, was du meintest?
InformationsquelleAutor user2911651