ASP.NET避免刷新或退后重复提交数据

SongKer 发布时间:2014-07-14 分类:.NET 阅读:4622次 添加评论

ASP.NET避免页面刷新或退后时重复提交数据,有些浏览器可能提示重复提交弹出框。点击继续以后直接重复做了某一个插入或更新等操作,下面是避免刷新时重复提交表单的方法:

1.请求转发,页面跳转(执行数据的更新或插入操作后立即转跳到该页面,防止页面刷新引起回发操作,用户退后操作时依然无法避免)

2.重新加载该页面,与上一步类似。具体实现方法有很多(通过JavaScript来设置当执行操作后重新加载该页面:<script>window.location="当前页面'</script>)

3. 不保存缓存(即提交后表单上的数据不会被浏览器的缓存保存,如果此时再遇到刷新或者后退请求时, 就会显示“网页已过期”,数据也就不会重复提交了,这就起到了阻止刷新重复提交的效果。(参见: http://www.cnblogs.com/zpq521/archive/2007/08/14/854631.html))

4.MSDN的一种解决方案: 通过重新定义 System.Web.UI.Page 类来实现加载页面时,判断是“刷新”、“后退”请求,还是正常请求,其他的页面则继承了自定义的这 个Page类(具体实现方法参见:http://msdn.microsoft.com/zh-cn/library/ms379557(VS.80).aspx )


暂无留言

发表评论:

◎欢迎您的参与讨论。