Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 会话变量未正确处理_C#_Asp.net - Fatal编程技术网

C# 会话变量未正确处理

C# 会话变量未正确处理,c#,asp.net,C#,Asp.net,我在aspx页面上有一个带有id=“grdManageFilterRoom”的AspxGriview。我通过从数据库中获取一些数据来绑定这个网格。如果会话[“grdManageFilterRom”]变量发生任何更改,它将自动反映在会话[“tmpgrdManageFilterRom”]变量中 我不知道为什么会这样,我想避免这种行为。如有任何建议,将不胜感激 Session["grdManageFilterRoom"] = NameIdPairs<Int32>.GetRooms(c

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

   Session["grdManageFilterRoom"] = NameIdPairs<Int32>.GetRooms(companyCode, companyPersonID);          
   grdManageFilterRoom.DataSource = Session["grdManageFilterRoom"];
   Session["tmpGrdManageFilterRoom"] = Session["grdManageFilterRoom"];
Session[“grdManageFilterRoom”]=NameIdPairs.GetRooms(companyCode,companyPerSoId);
grdManageFilterRoom.DataSource=会话[“grdManageFilterRoom”];
会话[“TMPGRDManageFilterRom”]=会话[“GRDMManageFilterRom”];
这是:

Session["tmpGrdManageFilterRoom"] = Session["grdManageFilterRoom"];
使两个会话变量指向同一个对象(我猜
GetRooms
方法返回引用类型),基本上无论您使用的是
session[“tmpgrdmanagefilteroom”]
还是
session[“grdmanagefilteroom”]
(因为它是同一个对象)


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

des是正确的。NameIdPairs.GetRooms(companyCode,companyPersonID)的返回类型是什么,比如列表、数组等等?谢谢你的信息。我更改了使用克隆对象的代码