ASP.NET页面间的数据传递方式 (转)
本文来自:http://blog.csdn.net/guyue6670/archive/2008/12/10/3490601.aspx
1、 URL方式
URL方式是实现Web间数据传递最基本的方法,操作简单,可很方便地实现不同Web页面间的数据传递,但其安全性比较差。将要传递的数据附加在网页地址(URL)后面进行传递。如:http://www.cnblogs.com/index?UserName =admin,其中?后面所跟着的字符串便是传递的数据,=前的是变量名,=后面是数值,可以使用Request对象来获取传递的数据。如:Request(" UserName ")。这种方法在传递数据过程中其数据内容在URL栏中是显示的,用户能看到提交的内容。
2、 Form方式
通过在网页上制作表单交互区域,用户在浏览器端输入数据,然后通过Form提交到服务器,在提交后的接受Form数据的页面里就可以接收到相应数据,即Form的action页面中可以使用Request对象来接收所传递的数据。
如:发送页面:
<Form name="Form1" action="Target.aspx">
<input name="UserName" type="text" value="">
<input name="btnSubmit" type="submit" value="提交">
</Form>
接收页面:Request("UserName")
利用Form页面的文本框来接收用户数据的输入,通过Submit按钮提交后在Target.aspx页面中使用Request来接收数据。
3、 Cookie方式
Cookie是在浏览页面时Web服务器在浏览器端所写入的一些小文件,Cookie是存放在浏览器端本机磁盘上,而不是存放在服务端的。可以在发送数据时写入Cookie,接收时读取Cookie完成数据在Web页面间的传送。
发送页面:Response.Cookies ["CookieName"] ["UserName"] ="admin"
接收页面:String UserName = Request.Cookies ["UserName"].Value.ToString ()
在发送页面中对Cookies变量赋值,接收页面中取Cookie变量的值就是所传递的数据。
4、 Application对象
Application对象是用来记录整个网站信息的,是记录不同浏览器端共享的变量,无论有几个浏览者同时存取网页,都只会产生一个 Application对象实例。用户可以通过定义Application共享整个站点的变量来实现网页间的数据传递。其定义方法是:Application("变量名")= 数值
如:Application ["UserName"] ="admin"
Application对象所定义的变量对于所有浏览器来说都是可见的,所以其使用场合是所有浏览端共享的全局数据传递。
5、 Session对象
Session对象是用来记录浏览器端的变量,是个别浏览器端专用的变量,对于每一个浏览器访问时都会自动产生一个Session对象,该对象提供一个存储场所,用来存储仅仅对访问者在会话的活动期间打开的网页可用的变量和对象。这样就用可以用来在Web间传递专对单个浏览器端使用的数据。其定义方法:Session("变量名")= 数值
存储页面: Session("UserName")= "admin"
接受页面: String UserName = Session ["UserName"] as String //拆箱
Session对象所定义的变量只是浏览器端的专用变量,所以适用于局部会话间的网页数据传递。
6、 隐藏控件
隐藏对象通过在一个ASP.NET页面上放置隐藏控件,在控件中获取本页面需要传递的参数,然后在另外需要接受的页面的后台程序中访问存储页面中的隐藏控制,使得参数得以传递。
存储页面: <Input id=UserName type=hidden value="<% =Text1.Text % >">
<Input id=Password type=hidden value="<% = Text1. Text %>">
接受页面的后台编码:
String UserName = Page.Request.Params.Get ("UserName ");
String Password = Page.Request.Params.Get ("Password ");
总结:
上述介绍的是网页间数据传递的常用方法,各有千秋。其中URL方式和Form方式实现方法简单,可实现网页间的简单数据传递,一般为字符串类型,其特点是安全性差,而且必须是连续访问两页面间数据传递。Cookie和隐藏控件只能存放String类型的数据,如果想要存放更为复杂的数据类型,那么必须先将其转换为 String类型。Application对象和Session对象操作相对复杂些,浏览量非常大的网页使用时应适量,而且使用结束后尽量清除,否则大量使用有可能会导致服务器的瘫痪。Session变量的安全性较高,可传递专用浏览端数据,但是要注意Session对象装箱和拆箱的操作,通过要做相应的类型转换。具体应用决定了数据传递方式的选择,合理数据传递方式选择是 Web页面的设计中的关键考虑因素。