So che questo è vecchio ma è venuto fuori come il primo o il secondo colpo quando ho cercato su google. Ho fatto alcuni test e volevo pubblicare i risultati.
Ho creato un sito Web con 2 pagine. Carico pagina dal 1 ° pagina conteneva il codice ..
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 sequenza di quello che ha fatto per ognuno è quello che è stato davvero interessante ...
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
.. Quindi può essere utile sapere che cosa ordina che ti piacciano le cose.
Personalmente mi piace l'idea della finitura del codice corrente, PRIMA che il codice della pagina successiva abbia inizio. Quindi, Redirect o TransferRequest, anche se con quest'ultimo, potresti dover aggiungere un "return" appena sotto la tua chiamata se davvero intendevi che non eseguisse il resto del blocco try.
fonte
2015-03-19 15:54:37
http://stackoverflow.com/questions/521527/response-redirect-vs-server-transfer –
@Thit - Response.Redirect è un'altra cosa – StuartLC
@ThitLwinOo, chiede circa 'server.Transfer vs Server.Execute' , non su 'Response.Redirect vs. Server.Transfer'. –