Kein Page.Load nach Server.Transfer()

28/05/2009 - 11:50 von S. Dirks | Report spam
Hallo NG,

ich habe eine Webapplikation erstellt, in der ich auf der linken Seite einen
Navigationsbaum integriert habe. Sofern ein Item angeklickt wird, verweise
ich per Server.Transfer auf die ausgewàhlte URL. Die angewàhlte Seite wird
auch angezeigt. Das merkwürdige ist nur, dass wenn ich das mit dem IE 7/8
teste, wird das Page_Load-Event der nachfolgenden Seite nicht aufgerufen,
sofern die Seite bereits zuvor angezeigt wurde. Unter Firefox wird das
Pag_Load-Event wie erwartet ausgeführt.
Mir ist das insbesondere dadurch aufgefallen, dass wenn ich eine Seite
anwàhle, beim ersten Aufruf das Page_Load-Event ausgeführt wird. Setze ich
dann eine Sessionvariable auf einen anderen Wert und klicke dann auf eine
andere Seite und anschließend wieder auf die ursprüngliche, so wird mir diese
Seite mit dem vorigen Session-Wert angezeigt. Es scheint also so, dass die
Seite im IE 7 bzw. 8 nicht neu genereriert wird, sondern aus irgendeinem
Cache angezeigt wird. Drücke ich auf der Seite auf "F5" wird die Seite mit
den korrekten Werten angezeigt.

Falls ich mich etwas missverstàndlich ausgedrückt habe, hier nochmal das
geschilderte Verhalten in Kurzform:

1. Setze Sessionvariable auf Wert "x"
2. Wàhle im Baum Seite 1 an -> Seite 1 wird mit dem Wert "x" wird angezeigt
3. Seite 2 aufrufen -> Seite 2 wird angezeigt, hier wird die Sessionvariable
auf Wert "y" gesetzt
4. Seite 1 aufrufen -> Seite 1 wird angezeigt mit dem Wert "x" (in Firefox
wird der erwartete Wert "y" angezeigt; nach F5 wird auch im IE der Wert "y"
angezeigt)
Der Seitenwechsel geschieht wie bereits geschildert per Server.Transfer().
Das gleiche Problem habe ich auch bei Verwendung von Response.Redirect().

Ich kann mir das Verhalten nicht wirklich erklàren, hat vielleicht jemand
dafür eine Erklàrung?

MfG
S. Dirks
 

Lesen sie die antworten

#1 Gerold Mittelstädt
28/05/2009 - 14:01 | Warnen spam
Hallo,

S. Dirks schrieb:
ich habe eine Webapplikation erstellt, in der ich auf der linken Seite einen
Navigationsbaum integriert habe. Sofern ein Item angeklickt wird, verweise
ich per Server.Transfer auf die ausgewàhlte URL.



WARUM?! Entweder Direktlink oder Redirect (HTTP 302)

Die angewàhlte Seite wird
auch angezeigt. Das merkwürdige ist nur, dass wenn ich das mit dem IE 7/8
teste, wird das Page_Load-Event der nachfolgenden Seite nicht aufgerufen,
sofern die Seite bereits zuvor angezeigt wurde. Unter Firefox wird das
Pag_Load-Event wie erwartet ausgeführt.



Unwahrscheinlich. Den Server interessierts sonstwas welcher Client
gerade dranhàngt. ;)

Mir ist das insbesondere dadurch aufgefallen, dass wenn ich eine Seite
anwàhle, beim ersten Aufruf das Page_Load-Event ausgeführt wird. Setze ich
dann eine Sessionvariable auf einen anderen Wert und klicke dann auf eine
andere Seite und anschließend wieder auf die ursprüngliche, so wird mir diese
Seite mit dem vorigen Session-Wert angezeigt. Es scheint also so, dass die
Seite im IE 7 bzw. 8 nicht neu genereriert wird, sondern aus irgendeinem
Cache angezeigt wird. Drücke ich auf der Seite auf "F5" wird die Seite mit
den korrekten Werten angezeigt.



Da hast Dus doch. Für den Browser spielt sich alles auf der selben Seite
ab. Wenn der IE da den Cache bei sich àußerst àhnlich sehenden Inhalten
bemüht mehr als verstàndlich.
Aber nochmal: Warum um himmels Willen Server.Transfer?!

Ich kann mir das Verhalten nicht wirklich erklàren, hat vielleicht jemand
dafür eine Erklàrung?



Ordentlich machen. Direktlink oder Redirect. Google & Co freuen sich da
übrigens auch sehr drüber, dass sie überall hinkommen.

Viele Grüße!

Ähnliche fragen