2011-12-23 195 views
0

我們有一個審查系統,在我工作的地方。經理選擇一個僱員進行審查,然後將EmployeeID設置爲Session [「EmpID」]變量。現在,經理可以輸入該員工的信息。替代會話變量被覆蓋

我們的問題:(即互聯網瀏覽器) 當管理員打開瀏覽器的另一個標籤或窗口,對於不同員工搜索,它設置員工#2 ID作爲會議[「的EmpID」]可變的,重寫第一個。當管理人員切換回員工#1並輸入信息時,他們認爲他們正在輸入#1的信息,但是,由於他們最後選擇了信息,因此將其輸入爲#2。

有沒有人有想法來防止這種情況發生?

回答

1

當使用標籤式瀏覽時,你實際上使用同一個asp.net會話,因此,如果你沒有唯一地將一個頁面的緩存與其他頁面分開,你會得到相同的數據。

如果您的網頁使用會話存儲數據,請使用唯一標識符(例如GUID)作爲密鑰的前綴。將GUID存儲在隱藏字段或ViewState中。

也許只需將EmpID存儲在ViewState即可。然後Tab1將保持它的值,即使Tab2有另一個值。

1

這聽起來更可行的EMPID存儲在頁面內容的隱藏字段/標籤。保存你的記錄基於字符串記錄= span.innerText,因爲這將在頁面上不是會話