"response.redirect" und "server.transfer" helfen dabei, Benutzer von einer Seite auf eine andere Seite zu übertragen, während die Seite ausgeführt wird. Die Art und Weise, wie sie diese Übertragung / Umleitung durchführen, ist jedoch sehr unterschiedlich.
Für den Fall, dass Sie ein visueller Typ sind und eher eine Demonstration als eine Theorie sehen möchten, würde ich vorschlagen, das folgende Facebook-Video zu sehen, das den Unterschied auf demonstrativere Weise erklärt.
https://www.facebook.com/photo.php?v=762186150488997
Der Hauptunterschied zwischen ihnen besteht darin, wer die Übertragung durchführt. In "response.redirect" erfolgt die Übertragung durch den Browser, in "server.transfer" durch den Server. Versuchen wir, diese Aussage genauer zu verstehen.
In "Server.Transfer" ist die Reihenfolge der Übertragung wie folgt: -
1. Der Benutzer sendet eine Anforderung an eine ASP.NET-Seite. In der folgenden Abbildung wird die Anfrage an "WebForm1" gesendet und wir möchten zu "Webform2" navigieren.
2.Server startet die Ausführung von "Webform1" und der Lebenszyklus der Seite beginnt. Bevor jedoch der gesamte Lebenszyklus der Seite abgeschlossen ist, passiert "Server.transfer" mit "WebForm2".
3. Das Seitenobjekt "Webform2" wird erstellt, der gesamte Seitenlebenszyklus wird ausgeführt und die HTML-Antwort wird an den Browser gesendet.
In "Response.Redirect" folgt die folgende Abfolge von Ereignissen für die Navigation: -
1.Client (Browser) sendet eine Anfrage an eine Seite. In der folgenden Abbildung wird die Anfrage an "WebForm1" gesendet und wir möchten zu "Webform2" navigieren.
2. Der Lebenszyklus von "Webform1" wird ausgeführt. Aber zwischen dem Lebenszyklus passiert "Response.Redirect".
3. Anstatt dass der Server eine Umleitung durchführt, sendet er einen HTTP 302-Befehl an den Browser. Dieser Befehl teilt dem Browser mit, dass er eine GET-Anforderung an die Seite "Webform2.aspx" initiieren muss.
4.Browser interpretiert den Befehl 302 und sendet eine GET-Anforderung für "Webform2.aspx".
Mit anderen Worten, "Server.Transfer" wird vom Server ausgeführt, während "Response.Redirect" vom Browser ausgeführt wird. "Response.Redirect" benötigt zwei Anforderungen, um eine Umleitung der Seite durchzuführen.
Wann sollte "Server.Transfer" und wann "Response.Redirect" verwendet werden?
Verwenden Sie "Server.Transfer", wenn Sie durch Seiten navigieren möchten, die sich auf demselben Server befinden, und "Response.Redirect", wenn Sie zwischen Seiten navigieren möchten, die sich auf verschiedenen Servern und Domänen befinden.
Nachfolgend finden Sie eine Übersichtstabelle, in der Unterschiede herausgearbeitet werden und in welchem Szenario sie verwendet werden sollen.