Passing values between Asp.Net pages

ASP.Net Parameter values

When it comes to navigating between web pages in an Asp.Net application, it is essential to understand the techniques for transmitting information from the source page to the destination page. There are several methods available for accomplishing this task, each depending on the manner in which the redirection occurs.

The most commonly used approach to pass information between Asp.Net web pages is through the utilization of a query string. This method involves appending parameters to the URL, allowing data to be transmitted from the source page to the target page. However, query strings are not the only option available.

Another approach is to use session state, which allows for the storage and retrieval of data across multiple web pages within the same user session. This method is particularly useful when dealing with sensitive or extensive information that needs to persist throughout the user's interaction.

Furthermore, one can extract HTTP POST information from the source page, capturing the submitted form data and transmitting it to the destination page. This approach is suitable when dealing with scenarios where data integrity or security is of utmost importance.

Alternatively, developers can create public properties in the source page and access these property values in the target page. This method enables a direct and structured exchange of information between the two pages, providing a convenient means of passing data.

Lastly, control information from the source page can be obtained in the target page by referencing the relevant controls. This method is beneficial when specific control values or user input need to be shared between pages.

Query String Methods

A query string is a collection of key-value pairs that are included in a URL to transmit data to a web server. In a URL, the query string is indicated by the presence of a ? (question mark) followed by the parameters. Each parameter consists of a key-value pair separated by an = (equals) sign. The question mark serves as a delimiter between the base URL and the query string, and it is not considered part of the actual query string data. The query string provides a convenient method for passing information to a server, allowing for customization and dynamic interaction with web applications.


Passing single value

Passing multiple values

How to retrieve Query String values in the target page ?

string value1 = Request.QueryString["field1"]; string value2 = Request.QueryString["field2"];

When the source Asp.Net page uses the HTTP POST action redirect to the target page, you can retrieve posted values from the Form collection in the destination page.


In the source page include a form element that contains a TextBox and a button control that post values when the form is submitted.

Set the PostBackUrl property for the control to the URL of the page to which you want to post the ASP.NET Web page

The following source code explains a Button control that is configured to post to a page named destination.aspx in the root of the Asp.Net Web site.

<asp:Button ID="Button1" PostBackUrl="~/destination.aspx" runat="server" Text="Submit" />

After the submit, we can retrieve value using Request.Form["ControlID"] at the target page.

Label1.Text = "Submitted Value: " + Request.Form["Textbox1"].ToString();
Session State method

Information in the Asp.Net session state is available to all ASP.NET Web pages in the current application. It takes server memory, and the information is stored until the session expires, which can be more overhead than you want for simply passing information to the next page.

In the source page you can set the session values like the following:

Session["field1"] = "value1";

In the destination page you can read the saved session values like the following:

string field1 = (string)(Session["field1"]);


These are just a few examples of the various methods available for passing information between Asp.Net web pages. Each method possesses its own strengths and considerations, allowing developers to choose the most appropriate approach based on the specific requirements and constraints of their application.