据我所知,这是类似的问题在StackOverflow关于这个问题,但没有解决了我的问题,所以我创建了一个新的。asp.net mvc - 检测页面刷新
正如标题所说,我想检测用户刷新页面的时间。我有一个页面,我保存了一些关于用户完成的日志信息(如添加,删除或编辑项目)。该日志只能在用户离开页面时保存,而不能刷新。
我想下面的例子来检测,如果它是一个更新或新的要求:
public ActionResult Index()
{
var Model = new Database().GetLogInfo();
var state = TempData["refresh"];
if(state == null)
{
//This is a mock structure
Model.SaveLog(params);
}
TempData["refresh"] = true; //it can be anything here
return View();
}
考虑到这是一个TempData
应该在我的下一个动作到期。但是,由于某种原因它仍然在整个应用程序中运转。根据这blog它应该过期我的后续请求(除非我不明白的东西)。即使我从我的应用程序注销并再次登录,我的TempData仍然存在。
我一直在考虑使用javascript函数onbeforeunload
来做一些AJAX调用的动作,但我再一次不得不依靠TempData或以某种方式坚持这个刷新信息。有小费吗?
您使用的是什么版本的asp.net mvc? – user182630
这似乎是一个难以解决的问题。由于“做任何事情”涉及在控制器上调用一个动作,为什么不在完成时记录该活动,而不是在用户离开页面时?我做类似的审计,但是我通过覆盖SaveChanges方法将所有更改推送到每个实体的相应审计表中,将其嵌入到数据上下文中。 – tvanfosson
@ user182630我正在使用Asp.Net MVC3 – AdrianoRR