Server.Transfer : Passing values from one page to another page

本文介绍了一种在ASP.NET Web Forms应用中通过Server.Transfer方法在页面间传递值的方法。通过声明只读属性并利用Server.Transfer(), 可以实现在不同页面间的值传递,同时还提供了通过NameValueCollection获取表单字段值的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Some times, we want to pass values from one page to another page. There are many ways by which we can do this like: by using query string, or session variable, or Server.Transer etc.

Web Forms pages are classes in your application, and as such, you can create properties for them as you would any class. However, Web Forms pages have a very short lifetime, since they effectively exist only long enough to perform page processing. Properties on a Web Forms page therefore have limited use, since they exist only while the page is being processed. But if you transfer control from one page to another using specific techniques, the second page can still access properties on the first page.

This article shows you, how to pass values from one page to another page by using Server.Transfer() method.

Assign value to property of first page [ Form1.aspx ]

Declare Property : In first page, declare one or more read-only properties and return the property value you want to pass to the next page.

Public ReadOnly Property FirstName() As String

    Get

        Return txtFName.Value

    End Get

End Property


Public
ReadOnly Property LastName() As String

    Get

        Return txtLName.Value

    End Get 

End Property

Public ReadOnly Property Address1() As String

    Get

        Return txtAdd1.Value

    End Get 

End Property

Public ReadOnly Property Address2() As String

    Get

        Return txtAdd2.Value

    End Get 

End Property

Public ReadOnly Property UserData() As NameValueCollection

    Get

        Return Request.Form

    End Get
End Property

Call Server.Transer method to access second page.

PrivateSub btnForm2_ServerClick(ByVal sender AsObject, ByVal e As System.EventArgs) Handles btnForm2.ServerClick

    Server.Transfer("Form2.aspx")

EndSub

PrivateSub btnForm3_ServerClick(ByVal sender AsObject, ByVal e As System.EventArgs) Handles btnForm3.ServerClick

    Server.Transfer("Form3.aspx")
EndSub

To read property values from the source page in the called page.

To get the property values of the first page from the called page, create an instance variable of the source page class. You then assign to it the HTTP object (an instance of the IHttpHandler class), the object that received the original request.

1. Create a global instance variable that is typed to the class of the source page.        

Private frmSource As Form1

2. In the Page_Load handler, get the source page from the Context.Handler object (IHttpHandler interface) and assign it to the variable that you created in step 1. You must cast the handler object to the type of the source page class.

frmSource = CType(HttpContext.Current.Handler, Form1)

3. Get the property values from the source page and use them as you would any object properties.

[ Form2.aspx.vb ]

lblFName.InnerText = frmSource.FirstName

lblLName.InnerText= frmSource.LastName

lblAdd1.InnerText= frmSource.Address1

lblAdd2.InnerText= frmSource.Address2

[ Form3.aspx.vb ] 

By using NameValueCollection : The Form property of Request object returns a NameValueCollection representing a collection of form variables. You can access value of any form field by its Id like userData["txtFName"].The NameValueCollection class is a member of System.Collections.Specialized namespace.

Dim userData As NameValueCollection = frmSource.UserData

lblFName.InnerText = userData("txtFName")

lblLName.InnerText= userData("txtLName")

lblAdd1.InnerText= userData("txtAdd1")

lblAdd2.InnerText= userData("txtAdd2")

 

转载于:https://www.cnblogs.com/mqcan/archive/2008/03/27/1124627.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值