AJAX,回发和浏览器刷新

时间:2008-10-03 16:43:20

标签: asp.net ajax

我创建了一个用户控件来处理向某些业务实体添加注释,例如联系人和客户。效果很好......除了一个问题。

我使用ListView控件编辑和删除注释,并在同一个用户控件上添加一个单独的区域来添加新注释。所有这些都包含在UpdatePanel中。

Screenshot

这是我的场景......用户添加了新评论...页面进行回发,数据成功保存,ListView控件更新以显示新评论。现在,如果用户刷新浏览器,它将自然会再次回发并添加另一个重复记录。

关于如何最好地防止这种情况的任何想法?

2 个答案:

答案 0 :(得分:4)

您可以尝试使用Post/Redirect/Get模式。基本上不是让回发发送数据,而是重定向到页面。这样,如果用户刷新,他/她正在刷新GET命令而不是POST。

<小时/> 对不起..错过了UpdatePanel一块。确保您的提交按钮也在该UpdatePanel中。页面刷新不会影响您的AJAX调用,但当按钮位于面板外时,它会进行常规回发,因此您将再次发送添加请求。

答案 1 :(得分:0)

我在几年内没有使用过ASP.NET,但你应该在Page.IsPostBack中包装你的“在回发时执行此操作”代码:

if(IsPostBack) {
    //do your data-saving code...
}

MSDN link