点击超链接后ASP.Net保存

时间:2011-01-21 12:31:49

标签: asp.net

我需要调用一个save方法,当用户离开页面时,该方法会在会话中保留模型/对象。

该页面有各种链接,不会引发回发,只是执行重定向。是否有任何ASP.Net页面生命周期方法可以挂钩以执行保存而无需回发?

2 个答案:

答案 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中,如:

  • 向AjaxSave.aspx发出Ajax调用,然后完成,然后将window.location发送到链接href属性。

但是,这只有在用户点击您的链接时才有效,而不是仅仅是关闭浏览器或其他内容的人。

你也可以选择保存这些东西的路线,所以每当这个人发回帖子时,你就把这些东西放在会议中。但这意味着从最后一次回发到导航离开页面的值已经丢失 - 不知道这是否是一个问题。

最后一件事就像StackOverflow一样。如果您正在编辑内容,它会在您离开页面时显示警告,然后您必须单击“确定”,以离开该站点。