Javascript Chrome在iframe浏览器中悄悄地重新提交表单返回按钮

Javascript Chrome在iframe浏览器中悄悄地重新提交表单返回按钮,javascript,asp.net-mvc,google-chrome,iframe,form-submit,Javascript,Asp.net Mvc,Google Chrome,Iframe,Form Submit,在我正在开发的一个房地产网站上,我在“属性详细信息”页面上有一个“联系我们”表单,用户可以单击“联系我们”按钮,该按钮将在模式对话框中加载表单,一个iframe加载“联系我们”表单,填写一些详细信息并发送出去 在服务器端处理表单后,我必须从调用dialog close方法的服务器发出JavaScript代码,然后将用户重定向到感谢页面(如果我在服务器上执行简单重定向,iframe将获得我不想要的感谢页面) 问题出在Chrome浏览器上,如果你点击浏览器的后退按钮,联系人表单会被悄悄地重新提交。

在我正在开发的一个房地产网站上,我在“属性详细信息”页面上有一个“联系我们”表单,用户可以单击“联系我们”按钮,该按钮将在模式对话框中加载表单,一个iframe加载“联系我们”表单,填写一些详细信息并发送出去

在服务器端处理表单后,我必须从调用dialog close方法的服务器发出JavaScript代码,然后将用户重定向到感谢页面(如果我在服务器上执行简单重定向,iframe将获得我不想要的感谢页面)

问题出在Chrome浏览器上,如果你点击浏览器的后退按钮,联系人表单会被悄悄地重新提交。

注意:IE和Firefox根本没有这个问题

我发现以下链接很有用,但不是我问题的答案:

  • (这一个似乎与我看到的行为非常接近——但它似乎是一个在过去几年中不断重新出现的bug)

我们已经尝试了各种技术来避免类似Chrome的隐藏字段中的问题,保险缓存被关闭,在重定向到感谢页面之前销毁iframe。没有什么,它不断地重新提交表单,甚至不询问您是否要重新提交(根本不是它应该重新提交)

只要遇到这个问题,我想做的是在表单中包含某种一次性标记(即GUID),如果我们在服务器上重新检测到,我们可以忽略表单帖子。可能使用服务器上的会话状态来跟踪-就像一个

如果它是一个浏览器错误,那么您无法解决该问题。我的建议是,考虑使用单页应用程序架构,即使是对于这个小部分,也没有后退按钮,或者至少没有一个按钮可以重新加载父文档。您正在控制您有联系我们表单的Iframe?或者它是外部的?@SilentTremor这是我们的形式,所以我们有完全的控制权。你在想什么?在发布的对象中添加一个空的隐藏字段,如果框架表单上有提交按钮,则当你按下提交按钮时,该字段将被填充。如果你能做到这一点,我可以帮助你从javascript捕获替换和发布。如果在模型隐藏属性上按下按钮,请单击,在经典asp.net中,您可以获得事件源(表单有2个Button)