2013-11-28 38 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

不知道隊友,但我的猜測是,會有不少方法。有一個谷歌,但我會處理它,甚至可能會創建一個新的視圖來處理這一點,或者在查看包中的變量時在條件中包裝登錄視圖。 –