[转载]ViewState使用小结
ViewState是.Net中提出的状态保存的一种新途径,web程序保存状态的方式有这样几种:
1、Application:保存在Application中的数据是全局有效的;Application里面存放的
应该是访问较多,修改较少并且是全局至少大部分功能会使用的数据,例如计数器或者数
据库连接串等。
Application.Lock();
((int)Application["Count"])++;
Application.Unlock();
2、Session 在Asp.Net内部,有一个StateApplication来管理Session,
3、Cookie
4、ViewState
实际上ViewState并不神秘,就是一个Hidden字段,但是它是服务器控件状态保存的基础
;
如:
<form name="form1" method="post" action="modi_user_info.aspx"
language="javascript" onsubmit="javascript:return WebForm_OnSubmit();"
id="form1">
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value=""
/>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE"
value="/wEPDwUKLTIzODM0NzQ5OQ9kFgICAQ9kFgRmDw8WAh4EVGV4dAUHamFzbWluZWRkAgg
PDxYCHwAFDDA1OTEwMDAwMDYxM2RkZA==" />
做过Web程序的人可能都有这种痛苦的体会,有时候为了处理页面上面比较复杂的功能,
常常会加很多Hidden,然后在服务器端用一大堆判断来分析目前的状态,写起来烦人,
写完了代码更是难看;实际上,ViewState就是帮我们系统的实现了保存控件状态的功能
,服务器端控件能够在多次请求间保存状态也全靠它。
1、ViewState是存放在客户端,因此会减轻服务器的负担,是一种比较好的保存数据的
方式。
2、因为ViewState本身的限制,只能保存可以序列化的对象,而且最好不要放太多东
西,能省则省,以免在减慢传输的速度,以及加重服务器解析的负担。
3、我们通过很简单的方式就可以把ViewState里面的值获取出来,我们上面讨论了一
些,虽然没有把解析的代码写出来,但是利用LosFormatter可以得到ViewState反序列
化后的对象,那么要解析出来简直是易如反掌;所以ViewState在安全性上面还是比较差
,建议不要
存放比较机密和敏感的信息,尽管ViewState可以加密,但是由于ViewState要保存在客
户端,天生就有安全性的隐患。
[C#]
// 保存在 ViewState 中
ViewState["SortOrder"] = "DESC"; 字串5
// 从 ViewState 中读取
string sortOrder = (string)ViewState["SortOrder"];
如果要使用 ViewState,则在 ASPX 页面中必须有一个服务器端窗体标记 (<form
runat=server>)。窗体字段是必需的,这样包含 ViewState 信息的隐藏字段才能回传
给服务器。而且,该窗体还必须是服务器端的窗体,这样在服务器上执行该页面
时,ASP.NET 页面框架才能添加隐藏的字段。
在页面不回传的情况下,可以通过省略服务器端的 <form> 标记来去除页面中的
ViewState。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xidor/archive/2008/01/05/2027273.aspx
[转载]ViewState使用小结的更多相关文章
- <转载> GIT 操作小结 http://www.cnblogs.com/-ding/p/6008096.html
参考: http://www.cnblogs.com/zyf-zhaoyafei/p/4486220.html 作者:万境绝尘 转载请注明出处:http://blog.csdn.net/shulian ...
- 【转载】COM小结
原文:http://blog.csdn.net/byxdaz/article/details/6595210 一.Com概念 所谓COM(Componet Object Model,组件对象模型),是 ...
- [转载]dbms_lob用法小结
http://blog.sina.com.cn/s/blog_713978a50100prkt.html CLOB里存的是2进制 判定长度 DBMS_LOB.GETLENGTH(col1)获取文本 ...
- [转载] IE8+兼容小结
本文分享下我在项目中积累的IE8+兼容性问题的解决方法.根据我的实践经验,如果你在写HTML/CSS时候是按照W3C推荐的方式写的,然后下面的几点都关注过,那么基本上很大一部分IE8+兼容性问题都OK ...
- js isArray小结
原文:[转载]js isArray小结 在日常开发中,我们经常需要判断某个对象是否是数组类型的,在js中检测对象类型的常见的方法有几种: 1.typeof操作符.对于Function.String.N ...
- 转载:Hadoop排序工具用法小结
本文转载自Silhouette的文章,原文地址:http://www.dreamingfish123.info/?p=1102 Hadoop排序工具用法小结 发表于 2014 年 8 月 25 日 由 ...
- 转载ASP.NET 状态管理Application,Session,Cookie和ViewState用法
转载原地址 http://www.cnblogs.com/cuishao1985/archive/2009/09/24/1573403.html ASP.NET状态管理 APPlication,Ses ...
- 转载 asp.net中ViewState的用法详解
转载原地址: http://www.jb51.net/article/73662.htm 在web窗体控件设置为runat = "server",这个控件会被附加一个隐藏的属性_V ...
- [转载] Java集合框架之小结
转载自http://jiangzhengjun.iteye.com/blog/553191 1.Java容器类库的简化图,下面是集合类库更加完备的图.包括抽象类和遗留构件(不包括Queue的实现): ...
随机推荐
- Spark ML包,数据挖掘示例数据Affairs
1.数据字段解释 affairs:一年来婚外情的频率 gender:性别 age:年龄 yearsmarried:婚龄 children:是否有小孩 religiousness:宗 ...
- 打jar包
1.在文件夹中新建文件manifest.mf 2.在dos窗口中jar cvfm 名字.jar manifest.mf 所有的编译的类class,中间有空格 3.在dos窗口java -jar 名字 ...
- ZOJ 3777 - Problem Arrangement - [状压DP][第11届浙江省赛B题]
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3777 Time Limit: 2 Seconds Me ...
- Oracle安全之 Oracle 11g flashback技术详解
Oracle11g提供的闪回技术用于对抗人为错误,主要有以下7种技术组成: 闪回查询-(闪回时间查询.闪回版本查询): 闪回数据归档: 闪回事务查询: 闪回事务: 闪回表: 闪回删表: 闪回数据库. ...
- Python:正则表达式的一些例子
#匹配电话号码(前面3/4-后面7-8): '\d{3,4}-\d{7,8}' #匹配QQ号(从号码1000开始第一位不能为0): '[1,9][0,9]{4}' #匹配身份证(15位数或者18位,考 ...
- PL/SQL常用语法及举例
PLSQL语句 DECLARE 声明部分 BEGIN 程序编写,SQL语句 EXECPTION 处理异常 END; / 声明部分(DECLARE) SQL> set serveroutput o ...
- WIN7怎么把暴风影视库去除?
最近在win7 64位系统上安装新版暴风,打开我的电脑里面多了个暴风影视库图标,点击右键也没有删除 每次一打开“计算机”看见这个很碍眼.怎么把它关闭呢? 方法如下: 打开注册表,删除此项 HKEY_C ...
- Code--POJ1850
Description Transmitting and memorizing information is a task that requires different coding systems ...
- mysql 数据操作 多表查询 目录
mysql 数据操作 多表查询 准备 多表连接查询介绍 mysql 数据操作 多表查询 多表连接查询 笛卡尔积 mysql 数据操作 多表查询 多表连接查询 内连接 mysql 数据操作 多表查询 多 ...
- 网络密钥交换协议——Diffie-Hellman
Diffie-Hellman算法是一种交换密钥的算法. 它是眼下比較经常使用的密钥交换算法. 这样的算法的优点是能让两台计算机在不安全的网络环境中完毕密钥的交换. 下面是整个算法的过程.当中红色字体表 ...