如果用户按F5或在asp.net刷新,如何防止数据发送?

时间:2012-09-10 14:09:52

标签: c# asp.net webforms

我有asp.net表单应用程序我有一个错误,当用户单击F5或刷新它将输入上次数据输入的数据。如果用户单击F5或刷新,他们将离开以防止发送数据?

3 个答案:

答案 0 :(得分:11)

通过重定向到自身,可以轻松地将页面重置为ASP.NET中的初始状态。以下是3种方法:

  1. 的Response.Redirect(Request的);
  2. 请求的路径以下列形式显示:/MyApp/MyFile.aspx

    1. 的Response.Redirect(Request.RawUrl);
    2. 其中不仅暴露了路径,还有任何查询字符串参数,如: /MyApp/MyFile.aspx?foo=bar

      1. 的Response.Redirect(Request.Url.ToString());
      2. 其中不仅暴露了路径和查询字符串参数,而且在表单中作为绝对引用提供: MyServer的/ MyApp的/ MyFile.aspx?富=酒吧

答案 1 :(得分:5)

对此的常见解决方案称为Post Redirect Get (PRG),其中浏览器会在任何帖子后立即重定向到HTTP Get页面。有关Web表单实现,请参阅Post Redirect Get in asp.net

答案 2 :(得分:1)

有多种方法可以防止这种情况发生。最简单的是Response.Redirect到另一个页面,可以刷新而不会产生任何后果。

// process form post
Response.Redirect("anotherpage.aspx");