HttpContext.Response.Redirect位置在chrome中不起作用

时间:2014-10-20 10:05:53

标签: c# google-chrome response.redirect

我有一个多语言网站。可用语言为英语和荷兰语。我希望能够在这些语言之间切换。因此,当访问者点击NL语言时,它会指向www.website.com/languagecontroller/switchlanguage/language=nl?currenturl=http%3a%2f%2fwww.website.com%2f(currenturl参数将被网址编码)。

重定向到页面和正确的语言将通过以下代码完成:

HttpContext.Response.Clear();
HttpContext.Response.StatusCode = 302;
HttpContext.Response.RedirectLocation = currentUrl;
HttpContext.Response.End();

我得到的结果(仅限Chrome)是地址栏中的空白页:www.website.com/languagecontroller/switchlanguage/language=nl?currenturl=www.website.com

编码似乎很好,因为Internet Explorer和Firefox工作正常,只有Chrome存在问题。我也试过Server.Transfer(),但我在那里遇到了同样的问题。

我一直在寻找这个问题,看起来它与Chrome缓存有关。但我不确定,也无法找到/解决方案。我不知道可能出现什么问题,或者我如何解决这个问题,因此Chrome不会给我带来任何问题。

有没有人有想法?

1 个答案:

答案 0 :(得分:1)

请参阅http://en.wikipedia.org/wiki/HTTP_location

RFC 2616需要HTTP LOCATION标头中的绝对网址,您的网址格式不正确(从我上面看到的),添加(http://)并将其转换为格式正确的绝对网址。检查,也许这可以解决问题。

问题似乎在网址中。

希望这有帮助。

感谢