2013-09-05 22 views
0

我有一個會話變量,我正在頁面上使用。我知道會話應該用於在網站的不同頁面之間存儲數據的目的 ,但我有一個很大的數據集來存儲,而我正在使用會話而不是視圖狀態。在瀏覽到其他頁面時刪除asp.net會話的內容

我想在導航到另一個頁面時清空會話。

有沒有辦法做到這一點?

我試着在PageUnload事件中設置session變量爲null,但那不是我想要的。

我想將頁面導航到另一個頁面時,將會話變量設置爲空。

請讓我知道。

+0

在正在瀏覽的頁面,清除會話。 –

+0

重複 - http://stackoverflow.com/questions/6421470/how-to-clear-session-when-navigating-away-from-one-page –

+0

有多少頁正在使用此會話?如你所知,你怎麼知道你不再需要這個會話,或者他們導航到一個不需要它的頁面? – MikeSmithDev

回答

0

你只需要調用

Session.remove("nameOfSessionVariable") ; 

和關於如何處理「離開頁面事件」

你將不得不寫一些前端JavaScript來做到這一點使用 東西像window.onbeforeunload()。然後,您必須撥打 AJAX電話才能告知您的後端此事件正在發生。當然,這個 並不是萬無一失的。瀏覽器崩潰或強制「退出」 不會觸發此事件。

由於可以在這裏C# ASP.NET Page Leaving event?

0

看到如果你真的想用戶離開頁面時,發現 - 你必須從客戶端做到這一點。處理onbeforeunload事件並進行AJAX調用以清除會話變量。

但這是一個矯枉過正。考慮重構代碼以在會話中存儲較少量的數據,並且僅在不同頁面之間使用該數據。

+0

以及如何刪除會話變量內容? –

+0

您將對服務器端代碼進行AJAX調用。並在該服務器端代碼做'Session.Remove(「var」);' –

0

在你導航到你可以清除一個會話變量如下頁面:

Session.Remove("Name"); 

要完全拋棄了會議:

Session.Abandon(); 
+0

以及如何處理「離開頁面」? –

+0

我有很多頁面可以導航到。我不認爲在我的情況下,我可以在我的網站的每個頁面上添加Session.Remove。 – CodeNinja

相關問題