ASP.NET 页面传值得9种方式
1. Get(即使用QueryString显式传递)
方式:在url后面跟参数。
特点:简单、方便。
缺点:字符串长度最长为255个字符;数据泄漏在url中。
适用数据:简单、少量、关键的数据。
适用范围:传递给自己、传递给另一个目标页面;常用于2个页面间传递数据。
用法:例如:url后加?UserID=…,跳转到目标页面,目标页面在后台端可用Request.QueryString["InputText"]获取其指定参数值。
http://www.itokit.com
2. Post
方式:通用的方式。利用form提交。
特点:最常用的方法。常用技巧是把隐秘的数据存在隐藏域中由form提交。
适用数据:大量数据,包括文件上传。
适用范围:同Get方法
用法:在客户端form指定action目标后submit、在asp.net的后台端中使用server.Transfer(url)提交;在后台端中用Request.Form["FormFieldID"]获取。
3. 页面对象的属性
方式:asp.net特有方式 。利用HttpContext获取发请求的页面的信息。
特点:可以直接存储对象。
缺点:注意强制转换的类型要正确。
适用数据:各种数据。
适用范围:页面之间传递复杂数据。
用法:获取Context.Handler将其转换为发请求的页面的实例,随后就可以轻松访问其form中的字段、甚至属性。其中的Context是指HttpContext对象,Handler是其属性,Context.Handler的意思可以理解为创建源页类的实例变量,而得到此实例之后,就可以直接访问其中的属性和Public方法了。
4. cookie
方式:将数据存在客户端的经典方法。
缺点:安全性低、受客户端设置限制、一个站点仅存20个cookie,每个容量4096字节。
有效期:自定义或被用户清除
适用数据:用户的会话数据(一般是用户名,用户的个性化设置信息等)
适用范围:单个用户、整个站点所有页面
用法:引用Request.Cookies(读取信息)、Response.Cookies(写入信息)、或用HttpCookieCollection直接创建Cookie对象。
5. Session
方式:将用户数据存储在后台端。 存储在服务器端内存中 如果大量的使用将导致服务器负担加重。
应用在需要跨页面与每个访问用户相关的变量和对象存储上,默认20分钟失效。
特点:asp.net中可以设置session的存储方式、位置、SessionID的保存是否依赖cookie。
可以直接存储对象。
缺点:asp.net中有失效的隐患
有效期:用户活动时间+自定义延迟。
适用数据:用户的特有信息。
适用范围:单个用户、整个站点所有页面。
用法:Session["CollectionName"] = value/object;
6. Cache
方式:将用户数据存储在后台端数据缓存中。
特点:可以大大提高效率。 可以直接存储对象。
缺点:数据更新不及时。
有效期:应用程序生命周期或自定义。
适用数据:所有页面、所有用户都可以共享的数据。
用法:Cache["CollectionName"] = value|object;
7. Appliction
方式: 将数据存储于此,相当于全局变量。
特点:可以直接存储对象。整个站点的共享数据。
有效期:应用程序生命周期。
适用数据:所有页面、所有用户共享的数据。
用法:Appliction["CollectionName"] = value|object;
8. ViewState
方式:asp.net特有机制,用来恢复页面状态 不是所有.NET类型数据都可以存储的,只支持string
integer boolean array arraylist hashtable 以及自定义的数据类型 会增加html 输出。
特点:将页面各控件及其所存数据序列化存在name为_ViewState的隐藏域中。
缺点:存在HTML中,安全性较低。可以设置加密和验证,但数据量会大增、效率有影响。
适用数据:页面PostBack需要保存的数据,数据太大会影响页面发送效率。
适用范围:页面自身数据保存。
用法:ViewState["CollectionName"] = value;
9. Static
方式: 将数据存于静态变量中。
特点:利于提高效率。
缺点:若用不好会致使用户或页面间数据紊乱,造成极大的隐患。建议只赋值一次,绝对禁止为单个用户而更改此值。
适用数据:所有用户共享的数据。
适用范围:此类所有的页面实例。
用法:在class中声明静态变量。
整理:
页面自身保存数据可用的有ViewState,static变量。
页面之间传递数据常用get,post,HttpContext,当然可以变通一下用于自身数据保存。
单用户的所有页面数据共享常用session,cookie,当然也可以应用在以上两种情况。
整个应用程序(所有用户所用页面)的数据共享常用Appliction,cache,static变量。
ASP.NET 页面传值得9种方式的更多相关文章
- ASP.NET页面传值的几种方式
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值. 存储对象传值.ajax.类.model.表单等!下面欧柏泰克和大家一起来看看asp.net页面传值方式一般有哪些?常用的较简单 ...
- mui 页面间传值得2种方式
通过最近得工作开发刚接触mui框架,用到了页面间得传值, 第一种:通过url进行传值 父页面代码: mui.openWindow({ id:'子页面.html', url:'子页面.html?para ...
- 仿联想商城laravel实战---5、无刷新的增删改查(动态页面更新的三种方式(html))
仿联想商城laravel实战---5.无刷新的增删改查(动态页面更新的三种方式(html)) 一.总结 一句话总结: 直接js增加删除修改html 控制器直接返回处理好的页面 用双向绑定插件比如vue ...
- Java文件上传的几种方式
文件上传与文件上传一样重要.在Java中,要实现文件上传,可以有两种方式: 1.通过Servlet类上传 2.通过Struts框架实现上传 这两种方式的根本还是通过Servlet进行IO流的操作. 一 ...
- js关闭当前页面(窗口)的几种方式总结(转)
js关闭当前页面(窗口)的几种方式总结 1. 不带任何提示关闭窗口的js代码 代码如下 <a href="javascript:window.opener=null;windo ...
- curl文件上传有两种方式,一种是post_fileds,一种是infile
curl文件上传有两种方式,一种是POSTFIELDS,一种是INFILE,POSTFIELDS传递@实际地址,INFILE传递文件流句柄! );curl_setopt($ch, CURLOPT_PO ...
- JSP错误页面处理的两种方式
JSP错误页面处理的两种方式: 方法1(真能针对单一页面生效,不推荐): 出错页面实例 <%@ page language="java" contentType=" ...
- web网页 页面布局的几种方式(转)
web网页 页面布局的几种方式 转载 2017年06月16日 12:19:40 2218 网页基本布局方式: (1)流式布局 Fluid 流布局与固定宽度布局基本不同点 就在于对网站尺寸的侧量单位不同 ...
- html 指定页面字符集的两种方式
1.html指定页面字符集的两种方式 方式一: <meta charset="utf-8"> 方式二: <meta http-equiv="Cont ...
随机推荐
- json2使用方法
例子1: //直接声明json数据结构 var myJSONObject = {"bindings": [ {"ircEvent": "PRIVMSG ...
- python解决SNIMissingWarning和InsecurePlatformWarning警告
在想要获取https站点的资源时,会报出SNIMissingWarning和InsecurePlatformWarning警告 SNIMissingWarning: An HTTPS request ...
- 使用openoffice将word文件转换为pdf格式遇到问题:The type com.sun.star.lang.XEventListener cannot be resolved. It is indirectly referenced from required
The type com.sun.star.lang.XEventListener cannot be resolved. It is indirectly referenced from requi ...
- [书目20131114]微软技术丛书•快速软件开发(珍藏版) Rapid Development Taming Wild Software Schedules By Steve McConnell
本文摘自:http://shop.oreilly.com/product/9781556159008.do EFFICIENT DEVELOPMENT Chapter 1 Welcome to Rap ...
- ‘初始化锁相环INIT_PLL()’
在XS128的SCI学习的过程中,INIT_PLL()显得很重要,初始化锁相环几乎在每个程序中都有,今天看的程序-初始化锁相环的相关代码如下: /*************************** ...
- C#算法基础之递归排序
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- 【转载】颜色空间-RGB、HSI、HSV、YUV、YCbCr的简介
转载自缘佳荟的博客. 颜色通常用三个相对独立的属性来描述,三个独立变量综合作用,自然就构成一个空间坐标,这就是颜色空间.而颜色可以由不同的角度,用三个一组的不同属性加以描述,就产生了不同的颜色空间.但 ...
- 第六篇、微信小程序-form组件
表单: 将组件内的用户输入的<switch/> <input/> <checkbox/> <slider/> <radio/> <pi ...
- 第三十三篇、富文本 NSMutableAttributedString
// 设置颜色等 NSMutableDictionary *arrDic = [NSMutableDictionary dictionary]; arrDic[NSForegroundColorAtt ...
- (转)MSSQL 各个发行版本版本号以及Compact 版本号
终于开始写博客了. 不要笑啊. 下面是MSSQL 的发行版本以及版本号.自己整理的. http://support.microsoft.com/kb/321185/zh-cn SQL Server 2 ...