我们在工作的地方设有审核系统。经理选择要审核的员工,然后将EmployeeID设置为Session [“EmpID”]变量。现在,经理可以输入该员工的信息。
我们的问题: 当经理在浏览器中打开另一个选项卡或窗口(即Internet Explorer)时,搜索不同的员工,它会将Employee#2 ID设置为Session [“EmpID”]变量,覆盖过多第一个。当经理切换回员工#1并输入信息时,他们认为他们正在为#1输入信息,但是由于他们最后选择了#1,因此输入#2信息。
有没有人有想法防止这种情况发生?
答案 0 :(得分:1)
使用选项卡式浏览时,您实际上使用相同的asp.net会话,因此,如果您没有从其他页面中唯一地分隔一个页面的缓存,则会获得相同的数据。
如果您的网页使用会话存储数据,请使用唯一标识符(例如GUID)作为密钥的前缀。将guid存储在隐藏字段或ViewState
中。
也许仅将EmpID
存储在ViewState中就足够了。然后Tab1将保持它的值,即使Tab2有另一个值。
答案 1 :(得分:1)
将empID存储在页面内容中的隐藏字段/标记中听起来更为可行。根据字符串记录= span.innerText 保存记录,因为它将在页面上而不是会话