Der Grund für die Ausführung der Seite hat keinen Einfluss auf den Seitenzyklus, das Load-Ereignis immer wird ausgelöst, wenn die Seite ausgeführt wird.
Wenn also Page_Load manchmal nicht ausgeführt wird, liegt das daran, dass die Seite zwischengespeichert ist und nicht auf dem Server ausgeführt wird. Die Seite kann im Browser, in einem Router irgendwo auf dem Weg oder auf dem Server zwischengespeichert werden, der das Seiten-Caching auf der Serverseite verwendet.
Wenn Sie das Seiten-Caching der Serverseite für die Seite nicht aktiviert haben, wird es im Browser oder im Netzwerk zwischengespeichert. Sie können Cache-Einstellungen verwenden, um dies zu eliminieren:
%Vor%Dadurch wird verhindert, dass die Seite unter normalen Umständen zwischengespeichert wird. (Vergewissern Sie sich auch, dass sich Ihr Browser nicht im Offline-Modus befindet. Dann wird alles im Cache verwendet, unabhängig von den Cache-Einstellungen.)
Nehmen wir an, ich habe zwei Seiten auf derselben ASP.NET C # -Website.
Ich habe versucht, den Cache deklarativ auszuschalten, habe versucht, true für endResponse in meiner Weiterleitung zu verwenden ... nichts scheint einen Unterschied zu machen.
Macht euch nichts aus! Ich bin ein Idiot! Mit Visual Studio Dev Localhost wurde die Redirect auf die Live-Seite umgeleitet! :)
Versuchen Sie es mit Server.Transfer anstelle von Response.Redirect.
Der Client sieht die Änderung der URL nicht, dies ist jedoch abhängig von Ihren Anforderungen nicht von Bedeutung
Ich hatte das gleiche Problem und stellte fest, dass dies für mich funktioniert: (Fügen Sie dies im Abschnitt Page_Load hinzu)
%Vor%und dann füge ich Session ["RELOAD"]="1" hinzu, direkt nachdem es den Code ausgeführt hat, den ich ausführen möchte, um zu verhindern, dass es immer wieder aktualisiert wird. Funktioniert wie ein Zauber.
Das Ändern von VS vom Debug- in den Release-Modus funktionierte für mich ....
Wenn Sie mit der Zurück-Taste zu einer Seite navigieren, wird die Seite aus dem Speicher geladen und keine Anfrage an den Server gesendet.
Sie können dies mit Fiddler bestätigen.
Ich bin nicht sicher, ob dies in allen Browsern zutrifft.
Bitte führen Sie den folgenden Code aus, um den Seitencache in Firefox zu deaktivieren.
%Vor%Wenden Sie dies beim Laden der Seite der Masterseite an.
Wenn Sie umleiten, ist es möglich, dass der Client die Antwort zwischenspeichert. Um dies zu umgehen, können Sie einen zusätzlichen Abfrageparameter hinzufügen, der einfach die Zeit enthält.
Dies reicht normalerweise aus, um die Cache-Mechanismen der meisten Seiten zu umgehen.