viewstate和controlstate之间的区别

时间:2013-02-05 07:44:40

标签: asp.net

ViewStateControlState之间的区别IsPostBack及其运作方式有何不同?

ControlState的实际用途是什么?

4 个答案:

答案 0 :(得分:7)

控件状态是ASP.NET 2.0中的一个新构造,它实际上只是视图状态;然而,它是具有显着优势的观点状态;这样做的好处是,使用您的控件的其他开发人员无法禁用控制状态,因为他们可以查看状态。

http://www.codeproject.com/Articles/15300/Using-Control-State-in-ASP-NET-2-0

答案 1 :(得分:1)

ViewState& ControlState既存储控件属性,也可以仅禁用ViewState属性,并且不会影响首先加载页面中加载的ControlState,或者如果页面是postBack,则controlState已从已保存的内存中加载

答案 2 :(得分:1)

由于控制状态和视图状态是相同的,那么第一个问题是,是不是重复数据? 然后我们意识到控制状态有一个优点,它不能被禁用。那么我们可能会想为什么我们不能对View State做同样的事情:)为什么要为此发明一个新的“控制状态”。现在我们有重复的数据。禁用视图状态的原因因控制状态的存在而无效,对吗?

这就是控制状态的真正优势所在。控制状态是多功能的。也就是说,自定义控件可以决定在控件状态下存储什么。如果视图状态不是由控件专门存储的,那么它是一种开箱即用的通用功能。因为控制状态有一个特定的原因(并且它必须是可靠的),所以它不能被禁用。

答案 3 :(得分:0)

ASP.NET 2.0版中引入的控件状态类似于视图状态,但在功能上与视图状态无关。页面开发人员可以禁用页面的视图状态或单个控件的性能。但是,无法禁用控制状态。控制状态被设计用于存储控制的基本数据(例如寻呼机控制的页码),该数据必须在回发时可用,以使控制即使在禁用视图状态时也能起作用。默认情况下,ASP.NET页面框架将页面中的控件状态存储在存储视图状态的同一隐藏元素中。即使禁用了视图状态,或者使用会话管理状态,控制状态也会传送到客户端并返回到页面中的服务器。在回发时,ASP.NET反序列化隐藏元素的内容,并将控制状态加载到为控件状态注册的每个控件中。