2010-06-24 19 views
2

如何在ASP.NET網站應用程序中完全禁用ControlState以擺脫每頁上的<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/ACBDEFGH...XYZ=" />如何在ASP.NET中禁用ControlState?

尋找解決的辦法,我只找到meaningless answers使ControlStateViewState之間沒有差異,或者回答saying that「我們不能禁止控制狀態」。第二個假設似乎是錯誤的,因爲StackOverflow頁面沒有ViewState隱藏字段。

+3

堆棧溢出是寫在ASP.NET MVC不是ASP.NET的WebForms,MVC不使用ViewState的,或ControlStates。如果使用ASP.NET,WebFroms和MVC是不同的Web框架。 – Anthony 2010-06-24 18:02:29

回答

3

創建一個自定義類

public class PageBase:Page 
    { 

     protected override void SavePageStateToPersistenceMedium(object state) 
     { 
       // Do nothing here 
     }  

    } 

然後改變你的頁面從PageBase

繼承
public partial class Test : PageBase 
    { 
    } 
+0

這將淨化但消除隱藏的字段,但它們都將完全空白。肯定有辦法擺脫隱藏的元素,這正是我能夠快速提出的 – 2010-06-24 19:23:48

+0

謝謝,沒關係。我將能夠擺脫標籤本身,但它並不重要。 – 2010-06-26 00:39:11

1

是的,控制狀態是一種機制,即使視圖狀態被禁用也可以工作,因此,它是ASP.NET Web表單的一個永久性裝置。 MVC不會有這個,因爲它不利用視圖狀態或控制狀態機制。

HTH。

+0

因此,引用*「我們無法禁用控制狀態」*對於非MVC應用程序完全正確?即使我不使用ASP.NET控件,也無法擺脫ControlState? – 2010-06-24 18:27:38

+0

我還沒有看到任何說你可以的東西,因爲那是它的意圖......你可能想嘗試@Lagrage的詭計...... – 2010-06-24 19:23:58

相關問題