日期:2014-05-17  浏览次数:20707 次

这个问题该怎么解决,貌似不是我代码的问题!
貌似和我的代码没有关系多少,我就上传个图片就是了。
是这样的,因为我写的代码带是在aspx中的,也就是说一般的method方式都是 post,所以每次刷新后弹出“重试”对话框,
可是让我好奇怪的是在 FireFox中,没“重试”时都会自动插入上一次的信息,因为我都设置 Validation了,所以肯定是内部自动插入,而且没有经过认证的。但是在IE8就不会自动插入。这个怎么解决哈

------解决方案--------------------
用代码解决刷新重复提交post请求问题
------解决方案--------------------
当用户点击“刷新”时,这完全是浏览器的“重复上一个请求命令”的行为。至于说有没有警告提示,每一个浏览器都是不一样的,你不能把这个当作什么规范要求人家。

如果你使用UpdatePanel,那么基本上不会重复提交数据。UpdatePanel已经解决了这个问题。

否则,你可以在逻辑上防止重复提交。例如你可以在页面上的ViewState中保存一个“页面生成时间”数据,当数据保存到数据库时把这个“页面生成时间”也保存进数据库中(比如保存到订单头部的一个叫做“最后一次生成客户端页面的时间”字段)。

当再次保存时,要求提交页面的ViewState中这个“页面生成时间”必须比“最后一次生成客户端页面的时间”必须大3秒钟,否则就是被重复提交了(或者是流氓软件灌水机给提交了)。