ASP.NET中的页面和服务端控件具有VIEWSTATE属性,以此来保存控件的状态信息。
比如你设置了数据网格控件的主键或者采取了分页等,这时候VIEWSTATE就有用了,不然的话会引发不能回传的很多问题。
因此加入你的页面需要和服务器进行交互,那么VIEWSTATE属性是不能禁用的,那样会增加不确定的错误,最怕的是隐性的错误,还找不到原因。哪怕只有一个需要回传的控件都不要禁用页面的VIEWSTATE。但是只需要显示数据的控件则可以,比如标签LABEL控件,因为其数据是作为结果的显示而已,所以不参与回传的过程,就可以禁用其VIEWSTATE属性,来减少传输页面的大小,提高页面的响应速度。
VIEWSTATE提供了很大的方便,但是弊端就在于页面需要存储多余的信息。无所谓好与坏,取决于具体的应用。