Sé que esto es viejo, pero apareció como el primer o segundo hit cuando busqué en google. Hice algunas pruebas y quería publicar los resultados.
Creé un sitio web con 2 páginas. Carga de la página en la primera página contenía el código ..
try {
//Response.Redirect("~/WebForm2.aspx");
//Server.Transfer("~/WebForm2.aspx");
//Server.Execute("~/WebForm2.aspx");
//Server.TransferRequest("~/WebForm2.aspx");
string strTry = "Try";
} catch (Exception) {
string strCatch = "Catch";
} finally {
string strFinally = "Finally";
}
La secuencia de lo que hizo por cada uno es lo que era realmente interesante ...
Command Sequence
Redirect Call, Catch (ThreadAbortException), Finally, Load Page 2
Transfer Call, Load Page 2, Catch (ThreadAbortException), Finally
Execute Call, Load Page 2, Try (continues), Finally
TransferRequest Call, Try (continues), Finally, Load Page 2
.. Por lo tanto, puede ayudar a saber qué ordena que te gusten las cosas que ocurren en.
Personalmente, me gusta la idea del final del código actual, ANTES de que comience el código de la página siguiente. Entonces, ya sea Redirigir o Transferir solicitud, aunque con este último, puede que tenga que agregar un "retorno" justo debajo de su llamada si realmente desea que no ejecute el resto del bloque de prueba.
http://stackoverflow.com/questions/521527/response-redirect-vs-server-transfer –
@Thit - Response.Redirect es otra cosa – StuartLC
@ThitLwinOo, pregunta sobre 'Server.Transfer vs Server.Execute' , no sobre 'Response.Redirect vs. Server.Transfer'. –