单击JS后退按钮

时间:2014-03-12 13:19:35

标签: javascript asp.net-mvc

我有一些代码在点击提交按钮时显示弹出窗口

$(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");

}

2 个答案:

答案 0 :(得分:0)

有什么问题?用户点击按钮时是否需要隐藏弹出窗口?

答案 1 :(得分:0)

根据您的评论:

“不知道它是怎么回事,但是当点击后退按钮时没有调用动作方法”

当您单击后退按钮而不是实际完成数据库的完整往返时,听起来您正在获取页面的缓存版本。基本上你需要禁止页面被浏览器缓存,这样你才能获得完整的往返。

看一下这个主题:Back button not requesting asp.net mvc get method