2008-11-14 81 views
6

完全摆脱视图状态:我怎样才能摆脱如何获得在.NET

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="..."/> 

完全!

+0

要得到完全摆脱视图状态很明显,但如果你想要优化它,而不是关闭它,你可能会发现我的答案有助于另一个问题:http://stackoverflow.com/a/3865762/205245 – 2012-09-06 13:41:55

回答

11

您需要添加的EnableViewState = “false” 表示@Page指令在Default.aspx文件。

<%@ Page Language="C#" AutoEventWireup="true" 
Codebehind="Default.aspx.cs" Inherits="Sample._Default" 
EnableViewState="false" %> 

然后,将下面的代码添加到Default.aspx.cs文件中。这将从生成的HTML中移除隐藏的字段。

#region Disable ViewState 
    protected override void SavePageStateToPersistenceMedium(object state) 
    { 
    } 
    protected override object LoadPageStateFromPersistenceMedium() 
    { 
     return null; 
    } 
    #endregion 
+0

如下所示,在web.config级别(甚至machine.config级别)上禁用视图状态会更容易。 Monsignor 2011-07-22 06:27:44

+0

我想知道为什么这对我不起作用。 GET请求中仍然有ViewState。 – ajeh 2016-06-28 18:38:21

4

我认为你可以在machine.config中禁用它:

<页的EnableViewState = “假”/>

应该针对所有页面禁用视图状态。

5

在控制级别,EnableViewState =“false”。

在页面级别,Page指令中的EnableViewState = false。

在应用程序了一级添加此为.config,<页的EnableViewState = “假”>

+0

实现了所有这一切,仍然有ViewState。 – ajeh 2016-06-28 18:38:53

1
#region Disable ViewState 
protected override void SavePageStateToPersistenceMedium(object state) 
{ 
} 
protected override object LoadPageStateFromPersistenceMedium() 
{ 
    return null; 
} 
#endregion 

这是awesome.However,只是为了让大家知道它仍然呈现一个空的ViewState隐藏字段

<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="" />