Asp.net页面间传值方式汇总
七种传值方式,分别是:URL传值,Session传值,Cookie传值,Server.Transfer传值,Application传值,利用某些控件的PostBackUrl属性和使用@PreviousPageType指令传值。
一.传值方式简单汇总
|
传值方法名称 |
传值方式 |
优缺点 |
|
URL传值 (QueryString传值) |
2种传值方式。 1、超级链接文本进行传值;2、调用HttpResponse对象的Redirect方法 |
优点:一般用于传递的值少,安全性较低; 缺点:传递的值是会显示在浏览器的地址栏上的,而且不能传递对象 |
|
Session传值 |
把控件中的值存在Session变量中,然后在另一个页面中使用它,以不同页面间实现值传递的目的。 |
优点:将每份数据存储于服务器变量中,可以传递比较多的数据;安全性较高 缺点:Session变量如果存储过多的数据会消耗过多的服务器资源; |
|
Cookie传值 |
比较特殊的数据存储方式,因为这种方式将数据存储于浏览用户的电脑中,以文本文件的形式存在于磁盘中 |
优点:很多登录系统就是利用Cookie实现用户自动登录。即用户登录一次的登录信息将被写入到用户电脑的Cookie文件中,下次登录时,网站自动读取该Cookie完成身份验证。 缺点:有些浏览器不支持Cookie传值,安全性不高 |
|
Server.Transfer传值 |
使用该方法可以在另一个页面以对象属性的方式来存取显露的值,但还需要额外写一些代码以创建一些属性以便可以在另一个页面访问它 Transfer只适合于服务器端重定向的页面。 |
优点:使用这种方法是简洁的同时又是面向对象的。使用该方法编程者可以在另一个页面以公开对象属性的方式来存取值。 缺点:操作步骤较多 |
|
Application传值 |
通过HttpApplication对象在服务器端生成一个状态变量来存储所需的信息,该HttpApplication对象变量的可用范围覆盖整个WEB应用程序,也就是说对所有用户都有效。其常用的方法用Lock和UnLock。 |
该对象一般存储一些要公布的信息,如在线人数等,而对于那些涉及用户个人的敏感数据则不用这种方法存储。 |
|
利用某些控件的PostBackUrl属性 |
主要是设置控件的“PostBackUrl”属性, |
优点:更加快捷,并减少了处理步骤。 |
|
使用@PreviousPageType指令 |
用于批定跨页面的传送过程起始于哪个页面.包含两个属性: TypeName:设置回送时的派生类名;VirtualPath:设置回送时所传送页面的地址. |
这个指令是.net 2.0中的一个新指令,用于处理ASP.NET 2.0提供的跨页面传送新功能。 |
二.简单比较
1.Session与Cookie
相同点:存储传递值,是对每一个用户而言的;
不同点:Cookie存放在客户端;Session存放在服务器端,而且Cookie的使用要配合
ASP.NET内置对象Request来使用。
2.Session与Application
相同点:Application通过HttpApplication对象传值的方法与Session的传值方法相似;
不同点:Session是对于每个单独的用户,当该用户关闭浏览器,则Session失效。HttpApplication对象存储的变量是针对所有访问程序的用户,即使有用户关闭了浏览器,变量的值不会丢失。
3.利用某些控件的PostBackUrl属性与 Server.Transfer传值
相同点:跨页面传送和调用HttpServerUtility对象的Transfer方法有相似之处,不过效率更高;
不同点:因为调用HttpServerUtility对象的Transfer方法是基于服务器的方法,而跨页面传送是基于浏览器端的。
三.总结
.NET传值,看起来方法挺多,但是真要应用的时候,还是要有针对性,考虑你做的系统的功能需求,安全性等方方面面,不是找最简单最方便的方法,而是要找最适合做你这个项目的方法,中国的中庸之道,“平衡”就好。
(附)Asp.Net页面生命周期:
页请求(浏览器的请求)-开始-页初始化-加载-验证-回发事件处理-呈现-卸载
转自: ASP.NET页面传值方式汇总
Asp.net页面间传值方式汇总的更多相关文章
- asp.net页面间传值方式
使用asp.net开发项目,必然会在页面间进行传值,本文介绍几种常见的页面传值方式,仅作笔记,以便后续查找使用. 前提:新建两个页面:ValuePage.aspx,ObtainValue.aspx,本 ...
- ASP.NET页面间传值的几种方式
ASP.NET页面间传值的几种方式 1.使用QueryString 使用QuerySting在页面间传递值已经是一种很老的机制了,这种方法的主要优点是实现起来非常简单,然而它的缺点是传递的值是会显示在 ...
- ASP.NET页面间传值总结
本文我们将讨论的是ASP.NET页面间数据传递的几种方法,对此希望能帮助大家正确的理解ASP.NET页面间数据传递的用处以及便利性. Web页面是无状态的,服务器对每一次请求都认为来自不同用户,因此, ...
- ASP.Net页面间传值
一.目前在ASP.NET中页面传值共有这么几种方式: 1.表单提交, <form action= "target.aspx" method = "post&qu ...
- Asp.Net页面间传值常见的几种方法
一.QueryString QueryString是一种非常简单的传值方式,他是将传送的值显示在浏览器的地址栏中.如果是传递一个或多个安全性要求不高或是结构简单的数值时,可以使用这个方法.但是对于传递 ...
- asp.net页面间传值的几种方法
表单提交 传送页面代码 <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server ...
- ASP.NET 页面之间传值的几种方式
开篇概述 对于任何一个初学者来说,页面之间传值可谓是必经之路,却又是他们的难点.其实,对大部分高手来说,未必不是难点. 回想2016年面试的将近300人中,有实习生,有应届毕业生,有1-3年经验的,有 ...
- 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式
ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...
- iOS页面间传值的方式(Delegate/NSNotification/Block/NSUserDefault/单例)
iOS页面间传值实现方法:1.通过设置属性,实现页面间传值:2.委托delegate方式:3.通知notification方式:4.block方式:5.UserDefault或者文件方式:6.单例模式 ...
随机推荐
- jQuery单选多选按钮选中美化特效
在线演示 本地下载
- 20145201 《Java程序设计》第一周学习总结(修改)
# 20145201 <Java程序设计>第一周学习总结 ## 教材学习内容总结 万事开头难,终于开始学习了Java.寒假的时候看到老师的要求确实有点慌,但是这周翻开书,从书本知识第一行学 ...
- wyx20162314实验报告1
北京电子科技学院BESTI实验报告 课程:程序设计与数据结构 班级: 1623 姓名: 王译潇 学号:20162310 指导教师:娄佳鹏老师.王志强老师 实验日期:2017年3月26号 实验密级: 非 ...
- Deep Auto-encoder
autoencoder可以用于数据压缩.降维,预训练神经网络,生成数据等等. autoencoder的架构 autoencoder的架构是这样的: 需要分别训练一个Encoder和一个Decoder. ...
- lamp架构之升级php版本
当你看到这篇文章的时候 YHSPY.COM 服务器上的PHP版本已经从 5.4.27 升级到了 7.0.4,这是一个重大的飞跃.一路升级遇到了很多问题.官方声称PHP7最大的升级就是在语言性能上的提升 ...
- 调用webservices中 枚举类型没有被序列化问题
引用服务后,代理类为自动为所有枚举类型生成了一个Bool类型相关字段,命名方式:比如枚举类名为“PayType”,生成的相关字段为“PayTypeSpecified”,此字段有何作用? PayType ...
- 通过Collections将集合转换为线程安全类集合
通过Collections将集合转换为线程安全类集合 List集合: List<String> list=new ArrayList<String>();list.add(&q ...
- springmvc跨域
//mvc默认是text/plain;charset=ISO-8859-1@RequestMapping(value = "/xxx", produces = "appl ...
- Memcached replace 命令
Memcached replace 命令用于替换已存在的 key(键) 的 value(数据值). 如果 key 不存在,则替换失败,并且您将获得响应 NOT_STORED. 语法: replace ...
- 第11章:最长公共子序列(LCS:Longest Common Subsequence)
方法:动态规划 <算法导论>P208 最优子结构 + 重叠子问题 设xi,yi,为前i个数(前缀) 设c[i,j]为xi,yi的LCS的长度 c[i,j] = 0 (i ==0 || j ...