2014-03-12 322 views
0

我有一些代碼,顯示彈出時提交按鈕點擊JS後退按鈕點擊

$(document).ready(function() { 
    .... 
    @if (TempData.ContainsKey("TripUpdateSuccess")) 
    { 
     @:alertify.set({ delay: 3000 }); 
     @:alertify.success("Transport " + @(Model.BookingID) + " has been updated."); 
     TempData.Remove("TripUpdateSuccess"); 
    } 
} 

當用戶點擊保存,提交發生這種彈出窗口顯示(alertify.js) 然後用戶點擊後退按鈕,這彈出窗口顯示。 似乎返回按鈕恢復ASP.NET MVC中的TempData對象的狀態。

我的任務是在按下後退按鈕時不顯示此彈出窗口。 這可以怎麼做?

忘了說,提交重定向到此頁面,所以這就是爲什麼後退按鈕指向此頁面。

[HttpPost] 
public ActionResult TripUpdate(TripUpdateModel model) 
{ 
    .... 
    // pseudo code 
    if (ok) 
     TempData["TripUpdateSuccess"] = true; 
    else if (TempData.ContainsKey("TripUpdateSuccess")) 
        TempData.Remove("TripUpdateSuccess"); 

} 
+0

在什麼時候,你填充的TempData [ 「TripUpdateSuccess」]? –

+0

在發佈調試之前轉儲TempData並且將回答您的問題。 – Botonomous

+0

更新的消息。 TempData [「TripUpdateSuccess」]在控制器的操作中設置,如果有任何問題,則在最後一行中。如果不行,我在相同控制器的動作中從TempData中刪除「TripUpdateSuccess」。 – user3328720

回答

0

什麼問題?當用戶點擊返回按鈕時,你需要隱藏彈出窗口嗎?

+0

是的,如果我可以在js中檢測到通過後退按鈕加載的頁面 - 這將解決我的問題 – user3328720

+0

也許您需要使用location.reload()重新加載頁面上的按鈕。或者使用jquery方法隱藏彈出窗口hid(); – user3127896

0

基於您的評論:

「不知道它去,但操作方法並不怎麼當後退按鈕點擊名爲」

這聽起來像你所得到的頁面的緩存版本,當你點擊後退按鈕,而不是實際完成數據庫的全面往返。基本上,您需要禁用瀏覽器緩存的頁面,以便完成一次完整的往返。

看看這個線程:Back button not requesting asp.net mvc get method

相關問題