URL-адрес Response.redirect кодирует пробелы в% 20 в строках запроса. - PullRequest
1 голос
/ 20 сентября 2010

Response.Redirect ("./ blah.aspx? Key = мое значение с пробелами");

Отправляет браузеру:

mysite/blah.aspx?key=my%20value%20with%20spaces

Теперь я понимаю, почему он это делает - ради древних браузеров, которые задыхались от пробелов. Но на самом деле я хочу иметь красивый URL с пробелами вместо% везде, потому что он работает точно так же.

Есть ли какой-нибудь способ остановить response.redirect urlencoding мои пробелы?

Большое спасибо

Ответы [ 2 ]

8 голосов
/ 20 сентября 2010

У вас не может быть действительного URL с пробелами, символ пробела на самом деле недопустим в URL.

Нельзя заставить метод Response.Redirect избегать кодирования пробелов, он не предназначен для создания недопустимого URL.

3 голосов
/ 20 сентября 2010

вы всегда можете заменить пробелы в своем ключе на баллы перед перенаправлением и снова «расшифровать» их в пробелы после того, как факт:

string urlString = "./blah.aspx?key=my value with spaces";
Response.Redirect(urlString.Replace(' ','-'));

и на странице, которая захватывает строку запроса:

string queryKey = Request["key"].Replace('-',' ');

(будьте осторожны с нулями в Request["key"] here хотя)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...