何时在viewstate中保存变量?

Onc*_*RER 5 asp.net

我在网上搜索了答案,发现大多数变量都保存在page.prerender事件的viewstate中.然后在页面加载事件中设置变量的值.

但是,当我在prerender或load事件的viewstate中保存变量时,viewstate如何在代码隐藏后动态更改后存储变量的值?

假设在加载页面后,用户单击了一个按钮,该按钮在其onClick事件中更改了变量的值.然后,单击按钮后引发的回发事件.据我所知,如果变量仅在prerender事件中保存在viewstate中,则新值应该已丢失并且无法保存在viewstate中.因为在回发时prerender事件不会触发,并且无法保存值.

我不应该在回发事件上升之前将变量保存在viewstate中吗?

我错了吗?如果是这样,如果viewnate保存在prerender事件中,viewstate如何存储变量的新值?

谢谢你的回答..

ker*_*vin 6

我怀疑你是在混淆保存ViewState,即.将内存中的ViewState集合序列化为字符串表示或可以轻松序列化的中间对象,实际使用常规访问器方法修改ViewState内存中对象.

你可能听到的是在PreRender事件之后调用SaveViewState()方法.但这与您修改ViewState集合的内容几乎没有关系.

结帐点7.预渲染对象8. ViewState保存在文章ASP.NET页面生命周期中.有一篇很好的MSDN文章也涉及到这一点.

alt text http://i.msdn.microsoft.com/dynimg/IC152667.gif