无法隐藏ASP.NET中的VIEWSTATE隐藏字段

时间:2010-01-20 09:55:29

标签: c# asp.net vb.net

我必须在RUN时隐藏我的ASP.net页面上的VIEWSTATE和EVENTVALIDATION隐藏字段。

我成功删除了EVENTVALIDATION .............

<%@ Page enableEventValidation="false" EnableViewState="false" %>

但是VIEWSTATE仍然存在,我无法摆脱它,我需要。 (很难解释原因)

还有另一种摆脱它的方法吗?

提前致谢!

5 个答案:

答案 0 :(得分:4)

您需要在页面上覆盖以下方法:

protected override void SavePageStateToPersistenceMedium(
object viewState)
{
}

protected override object LoadPageStateFromPersistenceMedium()
{
    return null;
}

见这里:http://weblogs.asp.net/ngur/archive/2004/03/08/85876.aspx 如果您愿意,您可以使用此代码重命名viewstate变量,但我会建议您反对。

从表单中删除runat =“server”也可以像其他人建议的那样工作。

如果没有viewstate,您将无法使用asp.net控件。您可能需要重新考虑您要做的事情以及为什么需要摆脱视图状态部分。

答案 1 :(得分:3)

要完全删除__VIEWSTATE,您需要删除<form runat="server">标记。当然,您将无法使用需要以服务器形式呈现的控件。

答案 2 :(得分:0)

或者您可以使用ASP.NET MVC。它不使用_VIEWSTATE。

答案 3 :(得分:0)

在ASP.NET 2.0中,__VIEWSTATE同时包含查看状态控制状态,主要区别在于控件可以在多个回发中正常工作查看状态,但不是控制状态

正如Mehrdad和Ralph所提到的,唯一的解决方案是删除<form runat="server">(使其成为HTML表单)或使用ASP.NET MVC。两者都涉及不使用服务器端表单,但创建ASP.NET MVC的目的是不使用任何服务器端控件。

有关查看/控制状态的详细信息,请参阅ASP.NET State Management Overview

答案 4 :(得分:0)

请参阅this answer。但是,如果您不想使用viewstate,那么摆脱它的最佳方法就是使用MVC。