6

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

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

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

<pages maxPageStateFieldLength="1024">

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

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

4

2 回答 2

7

我建议使用实用程序来解码您的视图状态,以便您了解其中的实际内容(因为您显然在那里有很多您似乎不需要的信息。)

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

于 2009-08-24T17:14:42.423 回答
3

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

EnableViewState="false"

如果您为所有网格和任何不需要视图的控件设置此选项,则会显着减小尺寸。

于 2009-08-24T17:10:08.313 回答