2009-05-07 6 views
14

Ich habe eine asp.net-Website, die Update-Panels auf der Seite verwendet, die ich nicht vom Server laden kann. Ich habe dies für den Seitencache auf der Masterseite deaktivieren.Deaktivieren Sie den Seitencache, um das Laden der Seite mit dem Browser zu erzwingen. Zurück

Wenn ich auf die Zurück-Schaltfläche des Browsers klicke, um zur Seite zurückzukehren, wird die Seite als abgelaufen angezeigt. Die anderen Seiten auf meiner Website funktionieren und rufen die Seitenladung auf, die einzige Lösung, die ich gefunden habe, aber nicht benutzen kann, ist die ganze Seite in einem Update-Panel zu schreiben, aber ich kann das nicht machen, weil ich einen Report Viewer auf der Seite habe funktioniert nicht mit Ajax. Wenn jemand helfen kann, würde ich es sehr schätzen.

+1

Die Nachricht der abgelaufenen Seite aus dem Browser bedeutet, dass einige Postback-Daten gesendet wurden. Einige Browser fragen den Benutzer, wenn sie es erneut senden möchten, fragen einige nicht. – jor

Antwort

0

Fügen Sie einfach diese in Ihrer Ansicht Datei im Kopfteil:

<head> 
<script language="JavaScript"> 
<!-- 
javascript:window.history.forward(1); 
//--> 
</script> 
</head> 

Innen Body-Tag hinzufügen:

<body onUnload="OperaReload()"> 
<input type="hidden" id="refreshed" value="no"> 
0

, um die Seite mit JavaScript neu zu laden gehen Sie wie folgt:

window.location.replace(window.location.pathname); 
1

Dies ist kein Browser-Cache-Problem; es ist ein Postback. Sie müssen das Post/Redirect/Get-Muster implementieren, um die Meldung "Möchten Sie erneut senden?/Seite abgelaufen" zu vermeiden.

http://en.wikipedia.org/wiki/Post/Redirect/Get

Das klassische Beispiel für diese Sache ist, wenn eine Web-Seite eine Schaltfläche, die etwas in einer Datenbank einfügen speichern hat. Die Schaltfläche "Speichern" wird angeklickt -> ein Postback erfolgt -> Code fügt eine Zeile in eine Tabelle ein -> Benutzer aktualisiert die Seite (F5) -> Postback erfolgt erneut -> Code fügt die gleiche Zeile erneut ein.

Um die Doppeleinfügung im vorherigen Beispiel zu vermeiden, müssen Sie umleiten, wenn die Schaltfläche "Speichern" gedrückt wird, und erst dann die Einfügung ausführen.