2015-11-07 91 views
0

我在用戶控件(ascx)中使用會話變量時,如何在用戶關閉網頁或重定向到其他頁面時從會話中刪除該變量?
如何在用戶控件卸載後清除會話變量

+1

一個選項是全局檢查您在哪個頁面上,每個頁面加載。如果不是這個頁面,從Session中刪除該變量。但這更多是一種技術解決方案。我相信有更好的方法,取決於你的情況。 – codeRecap

+0

tanx爲你的答案@codeRecap –

回答

1

對於重定向可以使用重定向頁面/視圖加載時,此代碼:

if (!IsPostBack) 
{ 
    Session.Clear(); //if you want clear session 
    Session.Remove("myVar");//if you want clear just 1 session variable 
} 

隨着關閉頁面的情況是很難的,因爲HTTP是無狀態協議,因此,如果用戶關閉您的服務器不知道他們的瀏覽器或他們只是簡單地離開一個打開的瀏覽器窗口很長一段時間

Уou可以使用Ajax處理如下所示的清除會話。

<body onunload="unlodFunc()"> 

    <script> 
    function unlodFunc() 
    { 
     $.ajax({ 
     type: "POST", 
     url: "MyPage.aspx/ClearSession", 
     data: "{}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function(data) { 

     } 
    }); 
    } 
    </script> 

C#代碼:

[WebMethod] 
public static void ClearSession() 
{ 
    if (Session["myVar"] != null) 
    { 
     Session.Remove("myVar"); 
    } 
} 

你也可以檢查this link

+0

Tanx fot你的答案,它的作品很好:) tanx @ user2771704 –