如何禁用特定控件的viewstate?

时间:2011-01-21 07:57:11

标签: asp.net postback viewstate

<asp:TextBox ID="TextBox1" runat="server" EnableViewState="false" />
<asp:Button ID="Button1" runat="server" Text="Button" />

我已将EnableViewState属性设置为false,但是当我单击该按钮时,文本框中的值在回发后仍然存在。为什么值仍然存在?

3 个答案:

答案 0 :(得分:3)

看看Understanding ASP.NET View State。在页面生命周期中,有一个Load Post Data阶段,它将从表单数据填充您的控件值。

查看状态可能非常令人困惑,特别是如果您在回发时使用表单数据填充控件时需要它。来自上面同一链接的The Role of View State可以很好地解释为什么它有用。

总结:用户输入不需要查看状态。视图状态用于存储对发生的页面状态的编程更改。一个简单的例子是当单击一个非提交按钮并且处理程序改变标签的文本时。该更改应存储在“查看状态”中,以便在其他帖子后面保留。

答案 1 :(得分:0)

接受输入的控件可以使用发布到服务器的数据恢复其状态。它们不需要存储在ViewState中。在某种程度上,这些不是旧值,这些是用户提交的新值(尽管事实上他可能没有更改它们)。

答案 2 :(得分:-2)

Explanation

最简单的方法是每次将Text属性设置为String.Empty。