会话变量处理不当

本文关键字:处理不当 变量 会话 | 更新日期: 2024-09-25 22:17:16

我在aspx上有一个带有id="grdManageFilterRoom"的AspxGriview页面。我通过从数据库中获取一些数据来绑定这个网格。如果Session["grdManageFilterRoom"]变量发生任何变化,则会自动反映在Session["tmpGrdManageFilterRoom"]变量中我不知道为什么会发生这种事,我想避免这种行为。任何建议都将不胜感激。

   Session["grdManageFilterRoom"] = NameIdPairs<Int32>.GetRooms(companyCode, companyPersonID);          
   grdManageFilterRoom.DataSource = Session["grdManageFilterRoom"];
   Session["tmpGrdManageFilterRoom"] = Session["grdManageFilterRoom"];

会话变量处理不当

这:

Session["tmpGrdManageFilterRoom"] = Session["grdManageFilterRoom"];

使两个会话变量都指向同一个对象(我猜GetRooms方法返回引用类型),基本上不管您使用的是Session["tmpGrdManageFilterRoom"]还是Session["grdManageFilterRoom"](因为它是同一对象)。

如果要防止这种情况发生,则需要克隆这些对象。