【问题标题】:How do I use the "Post/Redirect/Get" a.k.a. "Redirect after Post" with asp.net如何在 asp.net 中使用“发布/重定向/获取”又名“发布后重定向”
【发布时间】:2008-12-01 16:07:09
【问题描述】:

在 asp.net 中的某些操作之后进行刷新似乎会使它们再次发生,即使该操作没有意义(想想双重删除)。处理这种情况的 Web 方法是在发布后重定向以获得干净版本的页面,无需将操作重新发布到 Web 服务器即可刷新。我怎样才能用 ASP.NET 做到这一点

【问题讨论】:

  • 我正在使用 .NET Framework 2.0,但会对适用于所有框架版本的答案感兴趣

标签: asp.net post post-redirect-get redirect-after-post


【解决方案1】:

我感觉有一个更深层次的问题我没有得到,但这里有。在您的回发事件中:

// the post handling logic, e.g. the click event code
Response.Redirect(Request.RawUrl);

【讨论】:

  • 那应该是Response.Redirect(Request.RawUrl, false); 来完成处理并避免应用程序杀死会话等。
【解决方案2】:

使用 Server.Transfer 方法。

Server.Transfer 方法有第二个参数——“preserveForm”。如果您将此设置为 True,则使用诸如 Server.Transfer("WebForm2.aspx", True) 之类的语句,现有的查询字符串和任何表单变量仍可用于您要转移到的页面。

http://www.developer.com/net/asp/article.php/3299641

【讨论】:

  • 那如何防止双重删除或双重提交?/
  • @BobbyShaftoe 它不会。您不能使用 Server.Transfer,因为 P-R-G 要求向客户端发送重定向状态代码。
猜你喜欢
  • 1970-01-01
  • 2010-12-06
  • 2010-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-19
  • 1970-01-01
  • 2023-04-01
相关资源
最近更新 更多