A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© -淡然一笑 中级黑马   /  2014-1-14 11:37  /  1044 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 -淡然一笑 于 2014-1-16 14:58 编辑

在.net中常用的几种页面间传递参数的方法,并说出他们的优缺点。

1 个回复

倒序浏览
(1)Redirect 方法
将客户端重定向到新的页面,只是简单地终止当前页面,并转入新的页面开始执行,对转入的页面无任何限制。
(2)Transfer 方法
终止当前页的执行,并为当前请求开始执行新的页面。把执行流程从当前页面转到同一服务器中的另一页面,但是新的页面仍然使用当前页面创建的应答流。
这两种方法的主要区别是:(1)Redirect 方法可以实现任意网页间的重定向,而Transfer 方法只能实现同一服务器中ASPX 页面间的重定向。(2)Redirect 方法不会保留当前页面的表单(Form)数据和查询字符串(QueryString),而Transfer 方法则可以保留这些数据。
(3) QueryString 的使用
最简单最常用的传值方法,与传统的 Get 方法相对应,使用变化相对较小。数据直接在URL 中以明文传递,对于用户来说是可见的,但是可以加密。此方法的优点是简单、方便,缺点是能传递的数据量少,而且不能传递对象。
(4) Form 的使用
通过表单中的控件来传递数据,与传统的Post 方法相对应,使用变化相对较大。该方法的优点是可以传递大量数据,并且可以访问源页面控件中的数据;缺点是操作比较复杂,生命周期仅限于当前请求。
(5)Session 的使用
Sessionss 对象为当前用户会话提供信息。通过其属性可以方便地设置和检索ASP.NET 会话状态变量,这些变量的值在会话持续期间保留不变,并且可以被同一个会话中的所有页面访问,这就为页面传值提供了途径和方便。
(6)Application 的使用
Application 对象提供了对应用程序状态的访问。与Session 对象相比,两者对数据的存储与访问都相似,不同之处在于:每个Web 应用程序只生成一个Application 实例,并应用于所有的用户和会话;有效期为整个Web 应用程序的生命周期。因此,该方法非常适合存储那些数量少、不随用户变化而变化的常用数据。在多用户并发访问控制方面,Apllication 对象采用了锁定机制,但是它串行化了对Application 对象的访问,而这对于应用程序来说有可能形成严重的性能瓶颈。
(7)Cookie 的使用
Cookie 是网站存放在用户机器上的一小块信息,主要用来保存一些与用户相关的东西。浏览器一般都对Cookie 的使用进行了一些限制:
①每个域最多只能在一台用户机器上存储20 个Cookie;
②每个Cookie 的总尺寸不能超过4 096 Byte;
③一台用户的机器上Cookie 的总数不能超过300 个。
该方法的缺点是:并非所有的浏览器都支持Cookie;用户可以禁用和删除它;信息采用明文保存,安全性差。当特定的用户需要特定的数据片,并且需要把数据在某个可变的时段中保持的时候,Cookie 就非常方便。
(8)Cache 的使用
应用程序中的缓存机制用于将需要大量服务器资源来创建的对象存储在内存中,以此大大改进应用程序的性能。这个机制同样可以用来传值。与其他方法不同的是,该方法需要设置缓存项优先级和缓存时间。因为当系统内存缺乏时,缓存机制会自动移除很少使用或优先级较低的项,从而造成传值失败。该方法的优点是传递数据的大小和数量无限制,速度快。缺点是缓存机制的操作相对比较复杂。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马