当前位置:编程学习 > C#/ASP.NET >>

关于ViewState的一个奇怪问题

我在程序里面写了个ViewState["dtPos"]保存坐标信息,

ViewState["dtPos"] = dtPos;

奇怪的是当dtPos改变时,ViewState["dtPos"]内容也自动变了,而dtPos只是一个局部变量啊?是怎么回事呢?或是我对ViewState的理解不足?

DataTable dtPos = ViewState["dtPos"] as DataTable;
dtPos.Rows.Add(dr); --------------------编程问答-------------------- DataTable  是引用类型 --------------------编程问答-------------------- ViewState不是保存在页面上么?按说应该不会受到局部变量影响吧? --------------------编程问答-------------------- 当当前页面结束请求后,ViewState才序列化保存在页面上。因为保存的是引用服务端Page生命周期内,所以任何修改都会影响ViewState里的值。 --------------------编程问答-------------------- 哦,谢谢,那么要怎么样才能保存我想要的值呢? --------------------编程问答-------------------- try

ViewState["dtPos"] = dtPos.clone() --------------------编程问答--------------------
引用 3 楼 fangxinggood 的回复:
当当前页面结束请求后,ViewState才序列化保存在页面上。因为保存的是引用服务端Page生命周期内,所以任何修改都会影响ViewState里的值。


ViewState的机制值在页面的初始化时候解析上次的保存数据 --------------------编程问答-------------------- 用ViewState保存DataTable?真敢想...不怕被PM骂还不怕被用户骂吗?

ViewState不是用来存大对象的...难怪很多人反感ViewState,这么用就是找骂的... --------------------编程问答-------------------- 最好少用viewstate,影响效率啊。 --------------------编程问答-------------------- 那个,用啥呢?用Session?全局变量?Session好像也有问题啊,也是每次都变,我的目的是记录用户最后一次点击的坐标,所以要保存原有表
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,