ASP.NET中的ViewState

时间:2022-03-22 07:21:26

曾经在两次面试中都遇到了这个问题,就是ViewState中存储的变量到底存储在哪里。由于基础比较差,以前在学习的时候,就没有注意

到这里的细节,包括Session中存储的变量,所以我想ViewState存储变量必定大有学问。到网上一查,果然,贴出一篇大牛文章:

http://www.cnblogs.com/yzxchoice/archive/2006/09/08/498499.html

根据自己的感受,做一点总结:

1.ViewState中的值存储在隐藏的ViewState控件里,我想这是最关键的一句话了。

2.至于ViewState控件是如何来的,应该是表单标明runat=server,ASP.NET在输出页面时就会自动添加上一个隐藏域:

ASP.NET中的ViewState

3.如果在后台直接给ViewState集合赋值,那么ViewState的用法就和Session一样了。

4.对于ViewState的安全性问题,ASP.NET提供的两种方式:防篡改;加密。具体见上面的链接。

5.Session中的值保存在服务器的内存上。