【问题标题】:Totally Disable ViewState in ASP.NET Web Forms完全禁用 ASP.NET Web 窗体中的 ViewState
【发布时间】:2012-03-06 21:16:28
【问题描述】:

在 ASP.NET 4 Web 窗体 Web 应用程序中,我想为 TextBox 控件完全禁用 ViewState。我搜索了互联网,但找不到解决我问题的答案。

到目前为止,我已经尝试像这样设置Page 指令:

EnableEventValidation="false" ViewStateMode="Disabled" EnableViewState="false"

我还像这样设置了TextBox 控件:

ViewStateMode="Disabled" EnableViewState="false"

通常这两个设置足以禁用ViewState,但事实并非如此。

然后,我在页面的代码隐藏文件中写了以下内容:

protected override void SavePageStateToPersistenceMedium(object state) { }

protected override object LoadPageStateFromPersistenceMedium()
{
    return null;
}

这导致 HTML 中的 ViewState 值为 null,但当我按下提交按钮时,浏览器仍会记住 TextBox 中的值。

如何禁用此功能?

【问题讨论】:

  • 您使用的是 asp:TextBox 还是自定义服务器控件(即 MyTextBox)?您总是可以做的是在 Page_PreRender() 事件上删除 TextBox 的内容。 更新 更好的是,您可以在自己的服务器控件中覆盖 TextBox.LoadPostData() 方法。更多信息:msdn.microsoft.com/en-us/library/ms972976.aspx(查看“第 3 阶段 - 加载回发数据”)msdn.microsoft.com/en-us/library/…
  • 我使用 而不是自定义控件。这将是一个好主意,但我也有点好奇如何最终禁用 ViewState。感谢您的回答。

标签: c# viewstate webforms


【解决方案1】:

您误解了 ViewState 的使用方式。

请参阅this article 了解完整说明。引用:

ViewState 不负责 例如由 TextBox 控件发布(尽管它确实起到了重要的作用) 角色)

【讨论】:

  • 这是一篇非常详细且有用的文章。没想到视图状态会如此混乱。
猜你喜欢
  • 2012-01-23
  • 1970-01-01
  • 2016-11-12
  • 2011-09-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多