如何在ASP.NET中禁用viewstate和其他隐藏字段

时间:2009-03-20 10:47:00

标签: asp.net viewstate

我想删除ASP.NET页面中的这些隐藏字段。或者更改名称或确保服务器代码忽略它们。

(我知道我会放弃一些功能,但我认为处理它比删除'runat = server'更好。我唯一担心的是Updatepanel,我真的需要它)

(以上内容已完成,further background is here

3 个答案:

答案 0 :(得分:1)

据我所知,你无法完全摆脱ViewState - 即你无法摆脱名为__VIEWSTATE的隐藏输入字段。

禁用ViewState时,控件仍可以访问ControlState。 ControlState实际上存储在ViewState中,因此它会在__VIEWSTATE隐藏字段中结束。

因此,关闭整个页面的ViewState只会使这个隐藏的字段变小 - 它不会完全消除它。

我相信.NET也会在其中放入少量自己的秘密信息,所以如果你真的破解它并覆盖页面完全摆脱这个隐藏字段的方式,你可能会发现你的网站停止了工作

答案 1 :(得分:1)

您也可以从aspx中删除“form”标签,但服务器控件回发将无效。 我在Ajax加载的popup.aspx中使用了这个并显示OK。

答案 2 :(得分:0)

你还没有提到让你困扰的ViewState到底是什么以及为什么要忽略这个字段,所以在不了解问题的背景下很难提供更好的解决方案。

您可以通过将Page指令的EnableViewState属性设置为false来在页面级别禁用ViewState。

<%@ Page enableViewState="false" %>

或者,您可以通过将相应控件的EnableViewState属性设置为false来关闭ViewState for Server控件。