Asp. NET provides an excellent event-driven programming model, allowing developers to simplify the overall design of the Program , however, this also causes some inherent problems. For example, in the traditional ASP, we can easily transfer values between pages by using the POST method, when using the event-driven programming model ASP. net is not that easy. Of course, we still have some methods to implement the same function. This article will try to solve this problem using different possible methods, but it is foreseeable that this article will include the querystring, session variable, and server. Transfer Method for cross-page value transfer.
using querystring
using querysting to pass values between pages is a very old mechanism. The main advantage of this method is that it is very simple to implement, however, its disadvantage is that the passed value is displayed on the address bar of the browser (Insecure), and the object cannot be passed, however, this method is a good solution when the number of transmitted values is small and the security requirements are not high. The procedure for using this method is as follows:
1. Use the control to create a web form
2. Create a button that can return a form and a link button
3, create a character variable for saving the URL in the button or link button click event
4. Add the querystring parameter to the saved URL
5. Use response. redirect redirects to the saved URL
the Code section below demonstrates how to implement this method:
Source Page code:
private void button#click
(Object sender, system. eventargs e)
{< br> string URL;
url = "anotherwebform. aspx? Name = "+ textbox1.text +" & Email = "+ textbox2.text;
response. redirect (URL);
}< br> Target Page code:
private void page_load
(Object sender, system. eventargs e)
{< br> label1.text = request. querystring ["name"];
label2.text = request. querystring ["email"];
}
using session variables
using session variables is another way to pass values between pages. In this example, we store the values in the control in the session variables, use it on another page to transfer values between different pages. However, it should be noted that storing too much data in the session variable will consume a lot of server resources, so you should be careful when using the session. Of course, we should also use some cleanup actions to remove unnecessary sessions to reduce unnecessary resource consumption. The general steps for transferring values using session variables are as follows:
1. Add necessary controls on the page
2, create a button and link button that can return the form
3. Add the control value to the session variable in the Click Event of the button or link button.
4, use response. the redirect method redirects to another page
5. Extract the session value from another page, to explicitly clear it
the following code snippet demonstrates how to implement this method:
Source Page code:
private void button#click
(Object sender, system. eventargs e)
{< br> // textbox1 and textbox2 are webform
// controls
session ["name"] = textbox1.text;
session ["email"] = textbox2.text;
server. transfer ("anotherwebform. aspx ");
}< br> Target Page code:
private void page_load
(Object sender, system. eventargs e)
{< br> label1.text = session ["name"]. tostring ();
label2.text = session ["email"]. tostring ();
session. remove ("name");
session. remove ("email");
}
Use server. transfer
This method is a little more complex than the method described above, but it is particularly useful in inter-page value transfer, using this method, you can access the exposed value in the form of Object Attributes on another page. Of course, this method is used, you need to write additional code to create some attributes so that you can access it on another page. However, the benefits of this method are also obvious. In general, this method is concise and object-oriented. The entire process of using this method is as follows:
1. Add the necessary controls on the page
2. Create the get attribute process of the returned value
3, create buttons and links that can return to the form
4. click the button to call server in the event handler. transfer the transfer method to the specified page
5. On the second page, we can use context. the handler attribute is used to obtain the reference of the previous page instance object. With the handler attribute, you can use the value of the control on the previous page to access the value of the control.
the following code comprehensively implements the code of the above process:
Source Page code:
Add the following code to the page
Public string name
{< br> Get
{< br> return textbox1.text;
}< BR >}
Public String email
{
Get
{
Return textbox2.text;
}
}
Then call the server. Transfer Method
Private void button#click
(Object sender, system. eventargs E)
{
Server. Transfer ("anotherwebform. aspx ");
}
Target Page code:
Private void page_load
(Object sender, system. eventargs E)
{
// Create instance of source web form
Webform1 WF1;
// Get reference to current handler instance
WF1 = (webform1) Context. Handler;
Label1.text = wf1.name;
Label2.text = wf1.email;
}
Summary
This article describes how to use different methods to implement value transfer between ASP. NET pages. The three methods are querystring, session, and server. Transfer. We should evaluate the similarities and differences of these methods.
I hope this article will be helpful to you until you can use it in your code!