Page ViewState,Control ViewState和ControlState有什么区别?为什么ASP.Net中有3种不同的东西?
答案 0 :(得分:1)
页面是Control
,因此继承了ViewState
属性。保存ViewState时,ASP.NET将迭代控制树,将每个Control的ViewState持久保存到持久性介质中(默认情况下,呈现的HTML中为隐藏字段)。
ViewState
会产生开销,这可能很昂贵,特别是对于数据绑定控件,例如Repeater
,DataGrid
等。因此,通常需要禁用ViewState,而是重新生成对每个回发的控制。
然而,在.NET 1.x中,这会导致问题,因为某些控件在禁用ViewState时无法正常工作 - 示例是在DataGrid
中进行分页和排序。
ControlState
,以使控件能够保存在回发时运行所需的最小状态数据。
答案 1 :(得分:1)
View state
是ASP.NET页面框架使用的方法
在往返之间保留页面和控制值。当HTML
呈现页面的标记,页面的当前状态和
在回发期间必须保留的值被序列化
base64编码的字符串。然后将此信息放入视图中
国家隐藏的字段或字段。Control state
类似于
view state
但功能独立于view state
。页面
开发人员可以为页面或个人禁用view state
控制表现。但是,无法禁用control state
。
Control state
用于存储控件的基本数据
(例如寻呼机控件的页码)必须可用
回发以使控件即使在view state
具有时也能正常工作
被禁用了。Control ViewState
获取状态信息的字典
允许您保存和还原服务器控件的视图状态
跨越同一页面的多个请求。希望这有点帮助