我创建了一个用户控件来处理向某些业务实体添加注释,例如联系人和客户。效果很好......除了一个问题。
我使用ListView控件编辑和删除注释,并在同一个用户控件上添加一个单独的区域来添加新注释。所有这些都包含在UpdatePanel中。
这是我的场景......用户添加了新评论...页面进行回发,数据成功保存,ListView控件更新以显示新评论。现在,如果用户刷新浏览器,它将自然会再次回发并添加另一个重复记录。
关于如何最好地防止这种情况的任何想法?
答案 0 :(得分:4)
您可以尝试使用Post/Redirect/Get模式。基本上不是让回发发送数据,而是重定向到页面。这样,如果用户刷新,他/她正在刷新GET命令而不是POST。
<小时/> 对不起..错过了UpdatePanel一块。确保您的提交按钮也在该UpdatePanel中。页面刷新不会影响您的AJAX调用,但当按钮位于面板外时,它会进行常规回发,因此您将再次发送添加请求。
答案 1 :(得分:0)
我在几年内没有使用过ASP.NET,但你应该在Page.IsPostBack
中包装你的“在回发时执行此操作”代码:
if(IsPostBack) {
//do your data-saving code...
}