2008-11-14 77 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="" />