我对ViewState的认识
以前对ViewState认识模糊,经过一段时间的学习,稍有领悟,把我对视图(ViewState)的认识说下吧。
1.客户端请求页面时,Server会根据后台cs文件把页面上的标准控件(Standard Control)的状态生成视图,比如下拉列表的初始值,候选项,text控件的输入值等等,然后加密,放到页面中。
2.在客户端(browser or something else)的操作,比如点击按钮,下拉列表的改变。。都会改变对应控件的视图状态:下拉列表初始值为0,我选择了1,那么下拉列表的视图状态也变成了1.
3.当回传到Server时,Server会对目标页面重新生成一个新的原始页面,然后对比回传页面和原始页面的视图状态,如果下拉列表的值改变了,那么就会产生selectchanged事件,定了这个事件的话,server就会执行这个事件的代码。
这其实是模拟了winform程序的运行机理,只不过winform的控件值都存在内存里,而webform则存在视图(ViewState)内。
这种方式极大的提高了开发速度,但缺点也比较多,Server负重增加,和前台美工“耦合性”增加。