单击超链接后ASP.Net保存

单击超链接后ASP.Net保存,asp.net,Asp.net,我需要调用save方法,当用户离开页面时,该方法在会话中持久化模型/对象 该页面有各种链接,它们不会引发回发,而只是执行重定向。是否有任何ASP.Net页面生命周期方法可以挂接以执行保存而无需回发?一种解决方案是在卸载窗口时执行异步POST请求(无需等待响应): 使用jQuery的示例如下: $(window).unload(function() { $.post(location.href, $(document.forms[0]).serialize()); }); 尽管您可能需要

我需要调用save方法,当用户离开页面时,该方法在会话中持久化模型/对象


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

一种解决方案是在卸载窗口时执行异步POST请求(无需等待响应):

使用jQuery的示例如下:

$(window).unload(function() {
    $.post(location.href, $(document.forms[0]).serialize());
});
尽管您可能需要对Chrome使用稍微不同的方法(可在上找到):

看来这是唯一的办法 在Chrome中通过Ajax请求 是使用非标准事件 在卸载之前打开。铬明显 没有等待足够长的时间来发送 使用onunload的Ajax请求。是的 但是,请等待警报

那要看情况了

如果您需要在用户离开页面时保存值,那么这有点困难

您可以做的是将所有链接包装到一些jquery中,如:

  • 发出Ajax调用,调用AjaxSave.aspx,然后调用完成,然后调用window.location到links href属性
但是,只有当用户点击你的链接时,这才有效,而不是当用户仅仅关闭浏览器或其他东西时

你也可以采取这样的方式,经常保存这些东西,所以每当有人发回帖子时,你就把这些东西放在会话中。但这将意味着,从上次回发到离开页面导航所更改的值将丢失-不知道这是否是一个问题


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

我不确定,但我们是否有权对卸载方法发出新请求?但如果它起作用,那就太酷了。对于此人,他将需要将location.href更改为可以将值保存到会话中的aspx文件的位置。这似乎是可行的。请阅读jQuery论坛上的这篇文章:ASP.NET页面生命周期存在于服务器上,根据定义,甚至需要回发才能开始。只需使用LinkButton控件并从服务器端重定向即可。我有点认为,可能有一些javascript方法隐藏在某个地方会有所帮助。