在回发后viewstate越来越大

时间:2010-04-08 19:53:48

标签: asp.net viewstate

有趣的事发生在我身上...... 我有一个包含数据行的网格,但页面将失败有几个回发。我用fiddler检查它,发现每个帖子后视图状态扩展2-3次。

我做的事情就是搜索和排序。我不确定它是怎么发生的。有人能给我一个暗示吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

我的意见,首先找到控件是让视图状态增长(也许你有任何下拉列表框,你忘记清除,并在每个帖子后面添加更多项目)

为此,请将控件一个接一个地放在控件上.statstate = false。

找到导致问题的控件,只需检查是否忘记清除它,然后只是向其中添加数据。

答案 1 :(得分:0)

好的,我解决了这个问题。 我认为ViewState就像是一个保存键值对列表的字典。 在我的例子中,我的值是对象,它是一个地址或引用。因此,当我从ViewState获取一个对象时,并且不小心地将新子项分配给该对象。所有新孩子都将自动放入ViewState。不幸的是,在我的代码中,有一个非常小心的循环,让来自ViewState的孩子,在内存中创建副本并添加回来!代码无法区分重复的孩子,因为他们在不同的地址.... 所以最后页面在每个帖子后面都会变大2倍并且爆炸!!!!!!!

非常感谢你们!