页面ViewState,控制ViewState和ControlState

时间:2014-04-22 11:02:52

标签: asp.net .net viewstate

Page ViewState,Control ViewState和ControlState有什么区别?为什么ASP.Net中有3种不同的东西?

2 个答案:

答案 0 :(得分:1)

页面是Control,因此继承了ViewState属性。保存ViewState时,ASP.NET将迭代控制树,将每个Control的ViewState持久保存到持久性介质中(默认情况下,呈现的HTML中为隐藏字段)。

ViewState会产生开销,这可能很昂贵,特别是对于数据绑定控件,例如RepeaterDataGrid等。因此,通常需要禁用ViewState,而是重新生成对每个回发的控制。

然而,在.NET 1.x中,这会导致问题,因为某些控件在禁用ViewState时无法正常工作 - 示例是在DataGrid中进行分页和排序。

因此,在.NET 2中引入了

ControlState,以使控件能够保存在回发时运行所需的最小状态数据。

答案 1 :(得分:1)

  • View state是ASP.NET页面框架使用的方法 在往返之间保留页面和控制值。当HTML 呈现页面的标记,页面的当前状态和 在回发期间必须保留的值被序列化 base64编码的字符串。然后将此信息放入视图中 国家隐藏的字段或字段。

Link 1

Link 2

    在ASP.NET 2.0版中引入的
  • Control state类似于 view state但功能独立于view state。页面 开发人员可以为页面或个人禁用view state 控制表现。但是,无法禁用control stateControl state用于存储控件的基本数据 (例如寻呼机控件的页码)必须可用 回发以使控件即使在view state具有时也能正常工作 被禁用了。

Link 1

  • Control ViewState获取状态信息的字典 允许您保存和还原服务器控件的视图状态 跨越同一页面的多个请求。

Link 1

希望这有点帮助