據我所知,這是類似的問題在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