日期:2014-05-16 浏览次数:20765 次
当页面重新加载时,页面中定义的全局变量会被清零,也就是说不能保存状态
(由于HTTP协议的无状态特性,导致在ASP.NET编程中,每个请求都会在服务端从头到执行一次管线过程,对于ASP.NET页面来说,Page对象都会重新创建,所有控件以及内容都会重新生成)
这里介绍6种保存状态的方法,帮助我们实现页面之间或者整个用户会话期间保留状态数据。
QueryString
查询字符串是存在于URL 结尾的一段数据。下面是一个典型的查询字符串示例(红色部分文字):
http://www.abc.com/demo.aspx?k1=aaa&k2=bbb&k3=ccc
查询字符串经常用于页面的数据过滤,例如:
1.给列表页面增加分页参数,list.aspx?page=2
2.给列表页面增加过虑范围,Product.aspx?categoryId=5
优点:
1. 实现简单:在服务端直接访问Request.QueryString[]可读取数据。
2. 页面传值简单:<a href="url">或者 Response.Redirect(url)都可以实现。
缺点:
1.有长度限制。
2.用户可见,不能保存敏感数据。
ViewState
viewstate是页面级别的。只要这个页面在,viewstate中存的数据就在。
例如
在ViewState存放数据:
ViewState[key] = value;或