【发布时间】:2011-08-05 13:38:37
【问题描述】:
我们有一个在 2.0 框架上运行的旧 .net 站点。在这个站点中,有多个调用在需要时通过调用 response.redirect() 进行重定向。由于某种原因,我无法弄清楚 ` 字符已停止映射到根 - 实际上显示为路径的一部分。例如:
Response.Redirect("~/shopping/checkout_confirm.aspx?rc=" &
MyPayment.ResponseCode & "&rt=" & MyPayment.ResponseText)
现在最终尝试重定向到:
https://www.site.com/shopping/~/shopping/checkout_confirm.aspx?rc=3
我也尝试了以下方法,但没有成功:
Response.Redirect(Page.ResolveUrl("~/shopping/checkout_confirm.aspx?rc=" &
MyPayment.ResponseCode & "&rt=" & MyPayment.ResponseText))
当在开发环境中运行时,url 映射正确......关于这个问题的原因/解决方法有什么想法吗?
【问题讨论】:
-
MyPayment.ResponseText 中有什么内容?这可能是因为它的价值把事情搞砸了。您可能需要对其进行 URLEncode。
-
是在您的站点中购买目录还是 IIS(应用程序)中的虚拟目录?还有你的
Page.ResolveUrl电话的结果是什么? -
patmortech 是对的。一旦我对响应进行编码,它就可以正常工作了。