ASP.NET 页面传值方法

1.         前言

传统的ASP应用程序中,能够通过POST方法很容易把一个值或多个值从一个页面传送到另一个页面,用同样的方法在ASP.NET中实现有点麻烦。在ASP.NET中页面间的传值方法有很多,下面通过QueryString方法,Session方法,Server.Transfer方法,Cookie对象方法,Application对象方法,PostBackUrl属性方法,@PreviousPageType指令方法来进行了解ASP.NET页面间的传值

2.         使用QueryString传值

1)         简介

QueryString是一种非常简单也是使用比较多的一种传值方式,但是他将传递的值显示在浏览器的地址中,如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法

2)         创建工程

 

 

 

 

文件、新建、网站,新建一个网站工程

选择ASP.NET网站,单击浏览选择要保存的位置,单击确定

3)         编码设计

Ø 切回设计框

 

在代码编辑框的下面,单击设计,切换回网页的设计界面

Ø 设计发送数据网页

 

在编辑框左边的工具栏中,选中控件绘制网页界面

 

将网页界面绘制成上图所示

Ø 编码

 

编写Button_Click事件,创建一个字符串变量data,其值为web.aspx?name=TextBox1控件中输入的值,即要传的值,Response.Redirect()方法表示跳转到其他的页面,即Response.Redirect(要转到的页面.aspx)

Ø 添加网页

创建好后可以再工程文件中看到新建的文件

Ø 设计接收数据网页

利用工具箱,在新建的文件中绘制接收数据的网页

Ø 编码

 

Request.QueryString是用来获取参数,在页面中加入Request.QueryString语句,并且访问该页面时URL的后面带有“? 需要获取值的参数=***”,那么这条语句将返回等号后面的值,把这个值赋给Label1这个控件的Text属性上,将其显示写成Label1.Text=Request.QueryString[“需要获取值的参数”]

Ø 测试

 

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

3.         使用Session变量传值

1)         简介

Session的特点为:的数据保存在服务器端、可以保存任意类型的数据、默认的生命周期是20分钟,可以手动设置更长或更短的时间,使用Session保存数据后调用该数据时返回值是object

2)         修改发送数据网页代码

Session[“name”]=Text.Box1.Text指将TextBox.Text的值写入Session,在Session失效之前(默认为20分钟)可通过Session[“name”]获取他的值

3)         修改接收数据网页代码

Label1.Text=Session[“name”].ToString();表示将Sessionname的值获取并赋给Label1.Text,由于Session返回类型为object类型,所以需要转换成字符串,即.Tostring()

Session.Remove(“name”)清除掉nameSession的值,并释放其空间

4)         测试

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

4.         使用Server.Transfer传值

1)         简介

使用Server.Transfer方法把数据流从当前页面引导到另一个页面中,新的页面使用前一个页面的应答流,所以这个方式是面向对象

2)         修改发送数据网页代码

Server.Transfer(“web.aspx”) 表示跳转到其他的页面,这种方式迁移到另一个页面会保持服务资源,而不是简单的通知浏览器服务端换了个页面并迁移请求

public string name

{

 get

 {

    retrun TextBox1.Text;

}

}

为这个页面设定一个公开属性,当使用name属性时,返回值是TextBox1.Text上的数据

3)         修改接收数据网页代码

_Default wb表示创建发送数据页面类的实例变量wb

wb=(_Default)Context.Handler表示获取前一个网页传递过来的对象,并强制转换为_Default

Label1.Text=wb.namewb中的name属性值赋给Label1.Text

4)         测试

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

5.         使用Cookie对象变量

1)         简介

相对于Session而言,Cookie数据是存放在客户端

2)         修改发送数据网页代码

HttpCookie cookie=new HttpCookie(“name”)实例化HttpCookie的对象,HttpCookie提供一个建立和操作独立HTTP cookies的安全类型的方式,name为保存数据的变量名

cookie.Value=TextBox1.Text将输入的信息赋给cookie.Value属性

Response.AppendCookie(cookie)cookie添加到内部Cookie集合

3)         修改接收数据网页代码

Label1.Text=Request.Cookies[“name”].Value.ToString()取出Cookie中的name的值,将其转换为字符串并赋给Label1.Text

4)         测试

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

6.         使用Application对象变量

1)         简介

Application对象的作用范围是整个全局,也就是说对所有用户都有效,此方法不常使用,因为Application在一个应用程序域范围共享,所有用户可以改变及设置其值,故一般应用在计数器等需要全局变量的地方

2)         修改发送数据网页代码

Application[“name”]=TextBox1.Text将在Text Box1.Text中输入的值赋给Application对象,其保存数据的变量名为name

3)         修改接收数据网页代码

Label1.Text=Application[“name”].ToString()取出Application中的name的值,将其转换为字符串并赋给Label1.Text

4)         测试

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

7.         使用@PreviousPageType指令

1)         简介

这个指令是.net 2.0中的一个新指令,用于处理ASP.NET 2.0提供的跨页面传送新功能,用于指定跨页面的传送过程起始于哪个页面

2)         修改发送数据网页代码

Button1中的Button1_Click事件去掉

 

在页面设计框中单击源

Button1中添加上图红框内的代码,表示单击Button后,页面转至web.aspx

设置一个属性,返回一个TextBox的控件对象

3)         修改接收数据网页代码

将上面的代码添加在最上方,即设置回送时传送页面的地址

将上一页面中的name返回值的Text属性值赋给Label1.Text

4)         测试

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

8.         PostBackUrl属性

1)         简介

与上一方法基本一样,可以说是上一种方法的另一种实现,上一种方法主要通过直接返回控件来实现传值,这里使用的是在发送数据页面查找控件

2)         修改发送数据网页代码

删除上面的代码

3)         修改接收数据网页代码

删除上面的代码

3)         修改接收数据网页代码

将其删除

Label1.Text=((TextBox)PreviousPage.FindControl(“TextBox1”)).Text表示在发送数据页面查找控件IDTextBox1的控件,将他强制转换成TextBox,并将其Text属性值赋给Label1.Text

4)         测试

在文本框中输入文字,单击Button

显示出刚刚输入文本框中的文字

9.         解决存在问题

在没有单击Button按钮之前,也就是未处理Default.aspx之前,先请求了web.aspx,此时是不存在数据的,需要在web.aspx中的代码处理之前加入一个判断,使用IsCrossPagePostBack属性,允许检查请求是否来自Default.aspx,在接受数据页面写入:

写完后,此时先浏览web.aspx页面会跳转到web.aspx页面

 

本文转自:http://huobumingbai.blog.51cto.com/1196746/413240 活不明白的博客--技术..

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值