日期:2014-05-16  浏览次数:20682 次

Asp.Net的状态管理

页面重新加载时,页面中定义全局变量会被清零,也就是说不能保存状态

(由于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;