Asp.net

為什麼即使我將 EnableViewState 設置為 false 也會呈現 __VIEWSTATE 隱藏欄位

  • July 7, 2009

即使我在頁面級別設置了 EnableViewState=“false”,我也看到 __VIEWSTATE 欄位被渲染。如果我刪除表單元素的 runat=“server” 標記,則不會呈現此欄位。有人可以解釋一下嗎?

__VIEWSTATE 欄位也用於儲存控制狀態,它不是可選的。此外,如果我沒記錯的話,視圖狀態中包含的資訊用於驗證回發(並且啟用了驗證,這是預設設置)。因此,只要您擁有帶有 runat=“server” 的表單,您就會擁有一個 viewstate 欄位。但是,如果禁用所有視圖狀態,您應該會注意到欄位大小要小得多。

提示:在 Asp.net 中,如果您需要完全去除 __VIEWSTATE,請覆蓋 Page.Render 方法,將頁面呈現為字元串,並從中去除 __VIEWSTATE 文本。

引用自:https://stackoverflow.com/questions/283082