由于某些原因,我的应用程序的视图状态变得巨大(大约1400万个字符)。它增加了大约1分钟的加载时间。如果页面最终加载(通常不常见),则每次有人发送表单时服务器都会崩溃,因为“Post size exceeded allowed limits.
”
人们告诉我查看视图状态。谷歌告诉我这样做:
<pages maxPageStateFieldLength="1024">
...所以现在我没有一个巨大的隐藏区域,而是拥有100个非常大的隐藏区域。这不是我想要的。
为什么.NET会这样做?我怎样才能解决这个问题?
答案 0 :(得分:7)
我建议使用实用程序来解码您的视图状态,这样您就可以了解其实际内容(因为您显然有很多信息,而您似乎并不需要。)
viewstate decoder将允许您查看您的视图状态中您没有预料到的内容。然后,您可以修改代码,删除有问题的控件,或者选择性地禁用viewstate(使用EnableViewState="false"
属性)来控制不应该启用它的控件。
答案 1 :(得分:3)
请记住,控件将在没有viewstate的回发中保留其值。您通常可以禁用很多控件的viewstate,而不会出现任何问题。要禁用特定控件集的viewstate:
EnableViewState="false"
如果为所有网格设置此项,并且任何不需要视图的控件都会显着减小其大小。