【问题标题】:On hitting refresh of the web page , Button1_Click event is fired again在刷新网页时,再次触发 Button1_Click 事件
【发布时间】:2011-07-12 05:57:28
【问题描述】:

我有一个简单的网络表单,其中包含很少的文本字段、标签和提交按钮。当我单击提交按钮时,会触发 button1 事件并提交数据。

但让我担心的是,当我立即提交数据后刷新页面,然后我得到以下错误:

当我看到数据库检查条目时,存在重复条目。

我不明白为什么即使在我点击刷新并且我无法点击 Button1 时按钮点击也会被触发。

以及如何避免这种情况发生。

【问题讨论】:

标签: c# .net asp.net


【解决方案1】:

这里发生了什么:然后刷新页面,浏览器发送的请求与之前发送的请求完全相同,因为您发布了它发送 POST 到服务器的表单。一般来说,同一个表单永远不应该提交两次,所以浏览器(不仅是 IE)会为此发出警告。由于您确认它重新发送相同的表单并且您的代码第二次执行。

这是很正常的行为,但是!在您处理 POST 的所有时间,您必须检查您没有两次发布相同的数据,这是严重错误。您可以在业务逻辑杠杆或数据库级别上处理它,没关系。但应该处理。

【讨论】:

    【解决方案2】:

    这是一种自然行为。避免这种情况的最简单方法之一是在发布后重定向到同一页面。

    【讨论】:

      【解决方案3】:

      当您按下刷新按钮时,它将发送请求以获取之前由按钮单击事件启动的当前页面。

      您可以通过以下链接获得更多帮助。

      http://aspalliance.com/687
      http://msdn.microsoft.com/en-us/library/ms379557%28VS.80%29.aspx
      http://www.codersource.net/asp-net/asp-net-articles/working-with-post-back-in-asp-net.aspx
      http://www.knowdotnet.com/articles/asppagerefresh.html

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-17
        • 1970-01-01
        • 2021-11-15
        • 1970-01-01
        • 2010-10-17
        • 1970-01-01
        • 2022-01-01
        • 1970-01-01
        相关资源
        最近更新 更多