- DOTNET Interview Questions Type: pdf Author : Shivprasad Koirala
- Microsoft SQL Server Black Book Type: pdf
ASP.NET provides a few ways to move to different pages. Here’s a look at these options.
—————————————————————————————————————-
Directing a user to another page or resource is a common aspect of a Web application. The user may initiate the transfer to another page any number of ways, including clicking a button or link or selecting a value in a drop-down list. ASP.NET provides a few ways to move to different pages. Here’s a look at these options, along with commentary on when you should use which approach.
A key aspect of the various ways to send a user to another page within an ASP.NET application is where the transfer occurs; that is, it is handled within the client browser or on the Web server. The following list outlines two options for controlling page navigation.
Let’s take a closer look at each approach.
Response.Redirect
The default behavior of the Response.Redirect method is execution of the current page halts, and the user is sent to the new URL. The Web server issues HTTP headers and sends a 302 response to the client browser; this instructs the client to make redirected calls to the target URL. The result is two server requests for each redirection: the original and redirected requests. The following C# snippet shows it in action:
Response.Redirect("http://www.news.com");
Now, the Redirect method has two signatures with the second format accepting another Boolean parameter that signals whether execution of the current page should terminate (the default behavior). We could tell the system to continue execution of the current page while redirecting the user to the News.com site with the following snippet:
Response.Redirect("http://www.news.com", false);
Server.Transfer
The Server.Transfer method transfers the execution of a target URL to the server and halts execution of the current page. The result is only one request (as opposed to the two involved with the Response.Redirect method) since the server does not notify the client browser of the change. The experience can be a little disconcerting for users since the page address does not change in the browser. This C# snippet shows how you may use this method.
Server.Transfer("/default.aspx");
When using Server.Transfer, the target URL must be a virtual path on the same server since the Web server’s worker process is used, so you can’t use an address containing “http” or “https.” It has three signatures, with a second variation allowing you to transfer control to an IHttpHandler and the third adding a second parameter to the first version; whereas, the second value is a Boolean signaling whether the current form’s querystring and Form collections are preserved.
The PreviousPage property of the Page class provides code access to properties of the previous page in the browsing session, so Form and querystring variables are persisted between pages whereas they are not when using Response.Redirect.
The Server.Execute method is a bit antiquated, as there are other ways to accomplish the task, but it basically allows you to execute a resource request without leaving the current page. It is not really used for redirection, but it is mentioned here only to avoid any confusion with the Server.Transfer method.
Server.Execute has five signatures, but the basic version accepts a path to a resource as the following snippet displays:
Server.Execute(ResourcePath);
Redirecting a user to another Web resource is feasible in ASP.NET using one of the techniques discussed. However, you may be wondering why you would choose one approach over the other. The following list covers some of the advantages or disadvantages of Server.Transfer and Response.Redirect.
ASP.NET offers plenty of options when tackling a development task. The Response.Redirect and Server.Transfer methods provide two ways to redirect users to new URLs. Each method offers its own set of positive attributes, so deciding which one to use is really up to the developer’s preference.