【问题标题】:redirect to current page in ASP.Net重定向到 ASP.Net 中的当前页面
【发布时间】:2011-02-10 16:48:20
【问题描述】:

如何使用Server.Transfer() 重定向到当前显示的同一页面?

我想在提交后有一个清除的表单。

我可以使用哪些其他/更好的方法来实现相同的目标?

【问题讨论】:

  • 如果您只想在提交后清除表单,那么最后只需清除您代码中的所有字段值,而不是重定向到同一页面

标签: c# asp.net redirect


【解决方案1】:

为什么是Server.Transfer? Response.Redirect(Request.RawUrl) 会给你你所需要的。

【讨论】:

  • 我认为 Server.Transfer 是更好的选择。但是您的解决方案也可以解决问题。我现在正在使用 Server.Transfer(Request.Path);
  • @Daniel:这不是浪费的往返。通常,您不希望用户浏览器页面堆栈中的最后一个请求是 HTTP POST 的结果。用户经常会刷新并重复该操作。转移不能解决这个问题,但重定向可以。
  • @Daniel:没错,听说过 Post-Redirect-Get 模式吗?如果没有,这里有一些信息给你:en.wikipedia.org/wiki/Post/Redirect/Get
【解决方案2】:

http://en.wikipedia.org/wiki/Post/Redirect/Get

在 ASP.Net 中实现这种模式最常见的方法是使用 Response.Redirect(Request.RawUrl)

考虑differences between Redirect and Transfer。 Transfer 并不是告诉浏览器转发到一个清晰的表单,它只是返回一个清晰的表单。这可能是你想要的,也可能不是。

Response.Redirect() 不会浪费往返。如果您发布到通过 Server.Transfer() 清除表单并重新加载的脚本,大多数浏览器都会要求您重新发布,因为最后一个操作是 HTTP POST。这可能会导致您的用户无意中重复某些操作,例如。下第二个订单,以后必须作废。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-15
    • 1970-01-01
    相关资源
    最近更新 更多