我在网上搜索了答案,发现大部分变量都保存在page.prerender事件的viewstate中。然后,在页面加载事件中将变量的值重新设置。
但是,当我在prerender或load事件中将变量保存在viewstate中时,在代码隐藏中动态更改变量后,viewstate如何存储变量的值?
假设在页面加载后,用户单击了一个按钮,该按钮在onClick事件中更改了变量的值。然后,自单击按钮以来引发了回发事件。据我说,如果仅在prerender事件中将变量保存在 View 状态中,则新值应该已经丢失并且不能保存在 View 状态中。因为在回发时,prerender事件不会触发,因此无法保存该值。
我不应该在回发事件发生之前将变量保存在viewstate中吗?
我错了吗?如果是这样,如果将viewstate保存在prerender事件中,则viewstate如何存储变量的新值?
谢谢您的提前答复。
最佳答案
我怀疑您在保存ViewState时感到困惑,即。通过使用常规访问器方法实际修改该ViewState内存中对象,可以将内存中的ViewState集合序列化为字符串表示形式或可以轻松序列化的中间对象。
您可能会听到的是,在PreRender事件之后调用了SaveViewState()方法。但这与修改ViewState集合的内容无关。
结帐点7.呈现对象和8. ViewState保存在文章The ASP.NET Page Life Cycle中。有一篇很好的MSDN文章也涉及到这一点。
(来源:microsoft.com)
关于asp.net - 什么时候在viewstate中保存变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3010490/