What is difference between Server.Transfer and Response.Redirect?
To be Short: Response.Redirect simply tells the browser to visit another page. Server.Transfer helps reduce server requests, keeps the URL the same and, with a little bug-bashing, allows you to transfer the query string and form variables.
Something I found and agree with (source):
Server.Transferis similar in that it sends the user to another page with a statement such asServer.Transfer("WebForm2.aspx"). However, the statement has a number of distinct advantages and disadvantages.Firstly, transferring to another page using
Server.Transferconserves server resources. Instead of telling the browser to redirect, it simply changes the "focus" on the Web server and transfers the request. This means you don't get quite as many HTTP requests coming through, which therefore eases the pressure on your Web server and makes your applications run faster.But watch out: because the "transfer" process can work on only those sites running on the server; you can't use
Server.Transferto send the user to an external site. OnlyResponse.Redirectcan do that.Secondly,
Server.Transfermaintains the original URL in the browser. This can really help streamline data entry techniques, although it may make for confusion when debugging.That's not all: The
Server.Transfermethod also has a second parameter—"preserveForm". If you set this toTrue, using a statement such asServer.Transfer("WebForm2.aspx", True), the existing query string and any form variables will still be available to the page you are transferring to.For example, if your WebForm1.aspx has a TextBox control called TextBox1 and you transferred to WebForm2.aspx with the preserveForm parameter set to True, you'd be able to retrieve the value of the original page TextBox control by referencing
Request.Form("TextBox1").