【问题标题】:Response.redirect showing the previous page url in the address barResponse.redirect 在地址栏中显示上一页 url
【发布时间】:2023-03-28 18:45:01
【问题描述】:

我在代码中使用了Response.Redirect,它工作正常,但url 不正确。它总是显示上一页url。

这是我的代码。

Response.Redirect("Main.aspx?DocAddEdit=customer incident");

请提出建议。

我什至尝试过server.transfer,但同样的事情发生了。

【问题讨论】:

  • 这很奇怪,因为这是 server.transfer 功能,其中 url 不会改变。
  • 您确定您最初不是以Server.Transfer 开头并且遇到版本不匹配问题吗?
  • 听起来您首先使用Server.Transfer(),然后在同一代码块中使用Response.Redirect()。如果是这种情况,那么您的结果符合预期。您应该发布相关方法的整个代码块,以便我们获取上下文。
  • 我首先尝试了 response.redirect,然后我尝试了 server.transfer
  • @user3092654 显示整个方法。 Server.Transfer() 和 Response.Redirect() 工作方式不同。如果您得到相同的结果,那么您的代码中存在问题。这两种方法在 ASP.NET 中都非常陈旧,所以很久以前就会发现像这样的一个主要错误。

标签: c# response.redirect


【解决方案1】:

我发现url 不太可能相同。根据MSDN documentation on Response.Redirect

ASP.NET 通过返回 302 HTTP 状态码来执行重定向。

这意味着浏览器实际上执行了重定向并请求新的 url。

另一方面,Server.Transfer 将呈现并返回您指定的url,在这种情况下,用户浏览器中的 url 将保持不变。

您确定您尝试过Response.Redirect 而不仅仅是Server.Transfer?

【讨论】:

  • 是的..我确定..我都用过,而且都做了同样的事情
  • 编辑您的答案并显示您的代码。让它尽可能完整但简洁,这样我就可以尝试重新创建它。
  • 我使用 Response.Redirect("Main.aspx?DocAddEdit=customer event");这在一个 catch 块中
  • 当我执行Response.Redirect("default.aspx?test=this is a test"); 时,它按预期工作。您需要发布更多代码,以便我们诊断问题。
【解决方案2】:

最近我遇到了同样的问题,Response.Redirect 和
我可以在Response.Redirect() 行之后使用Response.End() 解决它。

【讨论】:

    猜你喜欢
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2018-06-01
    • 2016-07-28
    • 1970-01-01
    • 2013-06-07
    • 2016-05-13
    相关资源
    最近更新 更多