2015-02-11 59 views
1

我想重定向時方法的Session_OnEnd()在Global.asax中ASP.NET MVC重定向OnEnd

如果鍵入

public void Session_OnStart() 
{ 
    HttpContext.Current.Response.Redirect("http://www.google.es"); 
} 

而且去谷歌,但是當我嘗試這個onEnd .. 。

public void Session_OnEnd() 
{ 
    HttpContext.Current.Response.Redirect("http://www.google.es"); 
} 

顯示

「的NullReferenceException w ^如用戶代碼未處理「,對象引用 未設置爲對象的實例。

任何人都可以幫助我嗎?

+0

你如何測試Session_OnEnd? – ssilas777 2015-02-11 15:41:40

+0

但看起來像沒有接受的答案.. – ssilas777 2015-02-11 15:43:06

+1

@ ssilas777這並不一定意味着沒有一個正確的或有效的答案。 – Rhumborl 2015-02-11 15:45:27

回答

5

您對Session_OnEnd()的發生方式存在誤解。會話超時時會發生這種情況,這通常意味着用戶在一段時間內沒有活動連接。由於沒有活動連接,因此沒有活動請求,因此您無法重定向任何人。

我想你想要做的是在會話超時時重定向用戶瀏覽器,並且無法從服務器執行此操作。您必須在閒置一段時間後,在客戶端以JavaScript方式執行此操作。

+0

是的Erik,我正在嘗試這個,但是,這是什麼形式?任何示例?謝謝 – David91 2015-02-11 15:53:39

+0

對於永久會話狀態提供者來說,Session_OnEnd根本不會觸發...... – 2015-02-11 15:56:58

+0

@ David91 - 我會建議提出一個不同的問題,因爲這個問題是基於JavaScript的,並且與MVC無關或者與MVC無關服務器端。 – 2015-02-11 15:57:54