Я понимаю, что аналогичные вопросы в StackOverflow касаются этой проблемы, но ни одна из них не решила мою проблему, поэтому я создаю новую.
Как видно из названия, я хотел бы определить, когда пользователь обновляет страницу. У меня есть страница, где я сохраняю некоторую информацию журнала о том, что пользователь сделал на ней (такие вещи, как добавление, удаление или редактирование элементов). Этот журнал можно сохранить только тогда, когда пользователь покидает страницу, но не обновляя ее.
Я попробовал приведенный ниже пример, чтобы определить, является ли это обновлением или новым запросом:
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
, он должен истечь при моем следующем действии. Тем не менее, он почему-то пережил всю заявку. Согласно этому блогу он должен истечь по моему последующему запросу (если я что-то не понимаю). Даже если я выйду из своего приложения и войду снова, мои TempData все еще живы.
Я думал об использовании функции javascript onbeforeunload
, чтобы вызвать AJAX-вызов к какому-либо действию, но мне снова пришлось бы полагаться на TempData или как-то сохранять эту информацию обновления. Любые советы?