Viewstate隐藏的字段如此之大,一切都会崩溃

时间:2009-08-24 17:01:32

标签: .net asp.net viewstate chunking

由于某些原因,我的应用程序的视图状态变得巨大(大约1400万个字符)。它增加了大约1分钟的加载时间。如果页面最终加载(通常不常见),则每次有人发送表单时服务器都会崩溃,因为“Post size exceeded allowed limits.

突然出现了。我没有添加任何字段,只是页面上的一些javascript。

人们告诉我查看视图状态。谷歌告诉我这样做:

<pages maxPageStateFieldLength="1024">

...所以现在我没有一个巨大的隐藏区域,而是拥有100个非常大的隐藏区域。这不是我想要的。

为什么.NET会这样做?我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:7)

我建议使用实用程序来解码您的视图状态,这样您就可以了解其实际内容(因为您显然有很多信息,而您似乎并不需要。)

viewstate decoder将允许您查看您的视图状态中您没有预料到的内容。然后,您可以修改代码,删除有问题的控件,或者选择性地禁用viewstate(使用EnableViewState="false"属性)来控制不应该启用它的控件。

答案 1 :(得分:3)

请记住,控件将在没有viewstate的回发中保留其值。您通常可以禁用很多控件的viewstate,而不会出现任何问题。要禁用特定控件集的viewstate:

EnableViewState="false"

如果为所有网格设置此项,并且任何不需要视图的控件都会显着减小其大小。