Bei Verwendung von asp.net werden serverseitige Ereignisse automatisch ausgelöst, wenn die Seite aktualisiert wird. Nehmen Sie ein einfaches Beispiel, z. B. eine Registrierungsseite. Nachdem wir die Registrierungsinformationen eingegeben haben und zum Aktualisieren F5 drücken, wird das Button-Ereignis automatisch ausgelöst, was zu Problemen bei der erneuten Registrierung führt.
Meine bisherige Lösung: Abfrage mit Schlüsselwörtern, und wenn es Ähnlichkeiten gibt, wird angezeigt, dass dieser Benutzer bereits existiert.
Aber diese Lösung kann nicht ohne Anerkennung verwendet werden, und er wird erneut vorlegen. Vor diesem Hintergrund habe ich auf Anraten eines Freundes nach einer neuen Lösung gesucht. Es muss eine bessere Lösung geben, und ich werde nicht zögern, Ihnen Ratschläge zu geben.
Lösung: Erfassen Sie beim Aktualisieren KeyPress und lassen Sie es andere nutzlose Ereignisse auslösen.
1. JavaScript zum Erfassen des F5-Ereignisses
window.document.onkeydown = KeyStroke;
Funktion KeyStroke()
{
var key = event.keyCode;
event.srcElement.releaseCapture();
if(key == 116)
{
document.getElementById("Button1").click();
event.keyCode=0;
event.returnValue=false;
}
}
2. Platzieren Sie einen Button auf der ASPX-Seite
<asp:Button id="Button1" style="Z-INDEX: 102; LEFT: 344px; POSITION: absolute; TOP: 408px; WIDTH: 0px;"
Text="Button"></asp:Button>
3. Schaltflächenereignis
private void Button1_Click(object sender, System.EventArgs e)
{
Response.Write( "Sie haben die Taste F5 gedrückt");
}
Diese Lösung „Das Auto retten, um das Schöne zu behalten“ kann das kleine Problem des automatischen Auslösens von Ereignissen zur Aktualisierung lösen. Wenn jemand eine bessere Lösung hat, wäre ich sehr dankbar!