Skip to main content

Server.Response vs Request.Redirect


 

I have always wondered what the difference was, and finally found out (see below – cut and paste) that the one is recommended for internal pages, the other for external.


 

I found this at: http://forums.asp.net/p/1456267/3335046.aspx

If you read a lot of industry magazines and ASP.NET code samples, you may find that, although the majority use Response.Redirect to send the user to another page, some seem to prefer the rather mysterious-sounding Server.Transfer. So, what's the difference?

Well, Response.Redirect simply sends a message down to the browser, telling it to move to another page. So, you may run code like:

Response.Redirect("WebForm2.aspx")

or

Response.Redirect("http://www.quaffee.com/")

to send the user to another page.

Server.Transfer is similar in that it sends the user to another page with a statement such as Server.Transfer("WebForm2.aspx"). However, the statement has a number of distinct advantages and disadvantages.

Firstly, transferring to another page using Server.Transfer conserves 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.Transfer to send the user to an external site. Only Response.Redirect can do that.

Secondly, Server.Transfer maintains 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.Transfer method also has a second parameter—"preserveForm". If you set this to True, using a statement such as Server.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").

This technique is great for wizard-style input forms split over multiple pages. But there's another thing you'll want to watch out for when using the preserveForm parameter. ASP.NET has a bug whereby, in certain situations, an error will occur when attempting to transfer the form and query string values. You'll find this documented at http://support.microsoft.com/default.aspx?id=kb;en-us;Q316920.

The unofficial solution is to set the enableViewStateMac property to True on the page you'll be transferring to, then set it back to False. This records that you want a definitive False value for this property and resolves the bug.

So, in brief: 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.

Regards,
Ram Reddy Mekha, +91-994-840-4315
http://abhiramreddymekha.blogspot.com

Comments

Popular posts from this blog

April 7 March – Reflection

The Reality I was unsure if people care enough to make an effort. I planned to join the April 7 March to Save South Africa from the Cape Town Town Hall to Parliament the next day. Arriving in town we could see things were different. We walked past the Market in St Georges mall and saw almost no one there.  As we carried on walking towards the Grand Parade we heard first the motorbikes, then the people. Even though it was not yet noon, the crowd that had gathered was substantial, a lot more than the legal limit of 8,000. I looked up the street and then realized that the crowd was very large, my insecurity that no one cared enough to make an effort seemed like a joke. After some politically charged messages we started a slow march towards Parliament via Buitenkant. It was a slow march with some politically charged chanting – but was peaceful. When we got close to parliament as we could I realized there were a lot of people there.  Pers...

SMTP servers of South Africa

SMTP Settings Below is a list of SMTP sites in South Africa, using this and the ISP Map you can try and find which one works best for you. Telkom smtp.saix.net (ADSL) smtp.telkomsa.co.za (56k dial up) smtp.telkomsa.net Internet Solutions smtp.isdsl.net (ADSL) smtp.dial-up.net (56k dial up on IS) smtp.layerone.net (3g backbone) Vodacom smtp.vodacom.co.za smtp.vodamail.co.za MTN smtp.mtn.co.za Cell C smtp.cellc.co.za (GPRS) mail.cmobile.co.za (also used by Virgin) ABSA mail.absa.co.za iBurst smtp.wbs.co.za smtp.iburst.co.za @lantic smtp.lantic.net (ADSL,Dialup, ISDN) Sentech smtp.sentech.co.za MWEB smtp.mweb.net (ADSL) - this is to be retired End June 2012, use below instead smtp.mweb.co.za (56k dial-up & ADSL & business) iAfrica smtp.uunet.co.za smtp.iafrica.com Neotel smtp.neotel.co.za Tiscali NOW MWeb smtp.tiscali.co.za Netactive NOW MWeb smtp.netactive.co.za Global smtp.global.co.za Hertzner Use y...

Balance

Category: Ponderous When ever you talk to "life coaches" they talk about balance. What is balance, well it is there way of saying spend more time on personal things. That is not balance that is spending more time on personal things. Balance is what people tell you to get, when you are spending too much time trying to ensure that each day when the bills come you do not have a panic attack. So let's say you decide to take some personal time – get more balance in your life. Your read the secret you have the vision you write the goals, you project your positive thinking, and you believe in attaining the goals you have set. The question is what then. Balance implies there is a fulcrum and, and to much of any time on the one side of the fulcrum, is going to tip in other way, surely believing in balance is in itself a limiting belief. What you need to strive for is a pie chart of your time spent the way that is most beneficial to you as a person. The real limit we have is time (...