2014-10-20 3 views
1

У меня есть многоязычный сайт. Доступные языки: английский и голландский. Я хотел бы иметь возможность переключаться между этими языками. Поэтому, когда посетитель нажимает на язык NL, он будет указывать на www.website.com/languagecontroller/switchlanguage/language=nl?currenturl=http%3a%2f%2fwww.website.com%2f (текущий параметр будет зашифрован URL-адресом).HttpContext.Response.RedirectLocation doenst work in chrome

Перенаправление на страницу и правильный язык будет осуществляться с помощью кода ниже:

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

Пожалуйста, обратитесь http://en.wikipedia.org/wiki/HTTP_location

RFC 2616 требует абсолютного URL в заголовке РАЗМЕЩЕНИЯ HTTP, ваш URL не очень хорошо сформирован (от того, что я вижу выше), добавьте (HTTP: //) и преобразовать его в хорошо сформированный абсолютный URL. Проверьте, возможно, это решит проблему.

Проблема, похоже, находится в URL-адресе.

Надеюсь, это поможет.

спасибо

+1

Привет, Ironluca, я обновил URL-адрес URL-адреса URL-адреса. В моем коде это уже было так. Теперь это также в моем вопросе. благодаря – Willem