2013-11-28 43 views
1

我正在使用一个ASP.NET MVC4应用程序,该应用程序使用div中的部分视图加载大量的jQuery对话框来实现点击事件。当会话超时时,我遇到了一个问题,应用程序登录页面在jQuery对话框弹出窗口中加载。当会话超时时关闭Jquery对话框

有什么办法可以在会话超时时关闭jQuery对话框弹出窗口,以便它们返回到实际的应用程序登录页面以重新进行身份验证?

这是我的ActionResult

if (Request.IsAuthenticated) 
{ 
    try 
    { 
     // Do something 
    } 
    catch { throw; } 
    finally 
    { 

    } 
} 
else 
{ 
    return RedirectToAction("Index", "Home"); 
} 

回答

0

在您的登录页面代码检测会话是否过期,如果是返回的东西重新加载整个页面在浏览器中。

如果使用iframe,也可以只返回JS,增加了元刷新页面...

<script> 
    $(parent.document.getElementsByTagName('head')[0]).append('<meta http-equiv="refresh" content="0">'); 
</script> 

如果直接AJAXing成一个div,你可以只返回元刷新标记它应该重新加载页面...

<meta http-equiv="refresh" content="0"> 
+0

如何从控制器actionresult返回? – Berlin

+0

不知道队友,但我的猜测是,会有不少方法。有一个谷歌,但我会处理它,甚至可能会创建一个新的视图来处理这一点,或者在查看包中的变量时在条件中包装登录视图。 –