代码之家  ›  专栏  ›  技术社区  ›  Steven Behnke

重新加载时Asp.net重复表单提交

  •  2
  • Steven Behnke  · 技术社区  · 16 年前

    如何使用C#Asp.Net防止由于浏览器中的页面重新加载而再次发布的表单再次添加到我的数据库中。

    史蒂文

    6 回复  |  直到 16 年前
        1
  •  5
  •   bugfixr    16 年前

    您可以做的一件事是,在提交第一个页面后,您可以执行response.redirect返回到同一个页面(因此,如果刷新被命中,将杀死SUMBIT)。

    编辑:用于拼写。

        2
  •  3
  •   Steven A. Lowe    16 年前

        3
  •  3
  •   Paul    16 年前

    出于几个原因,我有时会在回发处理程序的末尾添加以下行“Response.Redirect(“ThisPage.aspx”);”。如果您正在更新保存在外部源中的数据,并且具有复杂的接口(尤其是使用javascript更改服务器控件的接口),这将强制所有控件重置,并且在触发onload事件时,IsPostBack属性将设置为false。另一个副作用是按F5不会重新发送命令。在您的情况下,这可能是正确的,也可能不是正确的:

        4
  •  2
  •   orip    16 年前

    尝试使用 Post/Redirect/Get Page_Load

    Response.Redirect(Request.Url.ToString(), true);
    
        5
  •  0
  •   Karunesh Karunesh    16 年前

    回复。重定向(“页面地址”);

        6
  •  -1
  •   brabster    16 年前

    HTTP提供了一种避免意外重新提交的机制—在表单标记中使用POST方法,而不是GET方法。

    我想公平地说是你 对更新资源的请求使用POST方法,因为它也将防止其他不希望出现的行为,例如为更新数据的页面添加书签。