我需要调用一个save方法,当用户离开页面时,该方法会在会话中保留模型/对象。
该页面有各种链接,不会引发回发,只是执行重定向。是否有任何ASP.Net页面生命周期方法可以挂钩以执行保存而无需回发?
答案 0 :(得分:1)
一个解决方案可能是在卸载窗口时执行异步POST请求(无需等待响应):
使用jQuery的一个例子:
$(window).unload(function() {
$.post(location.href, $(document.forms[0]).serialize());
});
虽然您可能需要对Chrome使用略有不同的方法(在jQuery forums上找到):
这看起来是唯一可以获得的方式 要求在Chrome中执行Ajax请求 是使用非标准事件 onbeforeunload。 Chrome显然 没有等待足够长的时间来发送 使用onunload的Ajax请求。确实如此 但等待警报...
答案 1 :(得分:1)
那取决于。
如果您需要在此人离开页面时保存值,那就太难了。
你可以做的是将所有链接包装在一些jquery中,如:
但是,这只有在用户点击您的链接时才有效,而不是仅仅是关闭浏览器或其他内容的人。
你也可以选择保存这些东西的路线,所以每当这个人发回帖子时,你就把这些东西放在会议中。但这意味着从最后一次回发到导航离开页面的值已经丢失 - 不知道这是否是一个问题。
最后一件事就像StackOverflow一样。如果您正在编辑内容,它会在您离开页面时显示警告,然后您必须单击“确定”,以离开该站点。