2015-02-11 107 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