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.单例模式 ...
随机推荐
- m2eclipse插件——添加依赖不显示搜索结果
使用Eclipse,安装m2eclipse插件之后,选中Maven项目的pom文件,添加依赖,点击“Add Dependency”的时候,输入要检索的jar包名称,search result却一直为空 ...
- Hardware Prefetcher
硬件预取选项,指CPU有硬件预取功能,在CPU处理指令或数据之前,它将这些指令或数据从内存预取到L2缓存中,借此减少内存读取的时间,帮助消除潜在的瓶颈,以此提高系统效能.通常情况下建议设置为Enabl ...
- LeetCode——Max Consecutive Ones
LeetCode--Max Consecutive Ones Question Given a binary array, find the maximum number of consecutive ...
- Java条件语句之多重 if
多重 if 语句,在条件 1 不满足的情况下,才会进行条件 2 的判断:当前面的条件均不成立时,才会执行 else 块内的代码.例如,如果考试成绩大于 90 分,则奖励一个 IPHONE 5S ,如果 ...
- mac的一些配置
1,基础知识 /etc/bashrc :是针对系统所有用户的全局变量,只有root用户才能修改这两个文件,对一般用户来说是他们是只读的.一般用户要想修改它们,可以在命令前加sudo,意思是以Root身 ...
- mysql create database and user 新建数据库并为其创建专用账号
DROP DATABASE `wordpress`;------------------------------------------------------------------ CREATE ...
- H5测试
H5是什么? H5的全称是HTML5,其实就是:移动端WEB页面. H5与原生 APP的区别: APP是使用原生系统内核的,相当于直接在系统上操作,是我们传统意义上的软件,更加稳定. H5的APP先得 ...
- requirejs打包项目
例子: https://github.com/AinneShen/requirejsExample 用requirejs为js和css添加版本,项目共用同一个config
- jvm最大线程数
摘自:http://sesame.iteye.com/blog/622670 工作中碰到过这个问题好几次了,觉得有必要总结一下,所以有了这篇文章,这篇文章分为三个部分:认识问题.分析问题.解决问题. ...
- Struts12---文件的下载
01.创建一个下载的页面 (我们的下载是把文件的路径写成固定的) <body> <form action="user/download" method=&quo ...