2011-01-21 79 views
0

我有一个需要调用保存方法,该方法在用户离开页面时会在会话中保留模型/对象。点击超级链接后ASP.Net保存

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

+2

ASP.NET页面生命周期存在于服务器上,根据定义需要回发甚至开始。只需使用LinkBut​​ton控件并从服务器端重定向即可。 – Greg 2011-01-21 12:46:18

+0

我有点认为,认为可能有一些javascript方法隐藏在某个地方,这将有所帮助。 – Burt 2011-01-24 17:26:20

回答

1

一种解决方案可以是执行一个异步POST请求(不等待响应)时被卸载的窗口:

使用jQuery一个例子:

$(window).unload(function() { 
    $.post(location.href, $(document.forms[0]).serialize()); 
}); 

虽然您可能需要使用Chrome浏览器略有不同的方法(上jQuery forums找到):

它看起来像得到 Ajax请求去t时的唯一途径在谷歌浏览器 中使用非正常事件 。 Chrome显然 没有足够长的时间使用onunload发送 Ajax请求。它确实 然而等待警报...

1

那么这取决于。

如果您需要在人员离开页面时保存值,那么这很难。

你可以做什么,是包装在一些jQuery的,是说,像所有的链接:

  • 问题一个Ajax调用,以AjaxSave.aspx,那么它完成,然后window.location的到链接href属性。

,但如果这个人点击你的链接,而不是如果人只是关闭浏览器或东西,只会工作。

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

最后一件事就是像StackOverflow那样做。如果您正在编辑内容,当您离开该页面时会显示警告,然后您必须点击好,才能离开该网站。