viewstate保存控件的状态,使得页面在往返的时候还能将控件的值保留下来,比如:你绑定了下拉框,如果没禁用viewstate的话,在postback后下拉框的值还有,如果你禁用了viewstate,在postback后下拉框就为空了!而且一些控件的复杂事件,比如,gridview的一些事件,都是需要viewstate的支持的
平时页面自动生成的ViewState,主要是用来支持服务器控件事件机制的,如果将form的runat="server"属性去掉,就不会生成了,但同时支持事件的服务器控件也不能用了!
保存了回传状态。比如你的页面请求中,服务器接到请求后第一件事,是把原有的viewstate字符解析并与page.aspx结合生成页面控件树。在经历了load事件后,再将编辑过的控件树解析成viewstate字符插入到你的页面中。如果你将它禁用,那么它就无法还原出你请求之前的页面状态,在后台看到的是最初的aspx页面。
可以看看这个便于理解、优化
http://www.cnblogs.com/xingshao/archive/2010/02/05/1664464.html