ASP C #: специальные символы: #, $, + нельзя передать через параметр URL

1

Мне нужно получить файл из виртуальных папок. У меня есть GetDocumentPreview.aspx, который может это сделать. Параметры - это тип URL. Ниже хорошего:

/GetDocumentPreview.aspx?name=filename&type=jpg

//But if I ask for file with #, &, + in name:

/GetDocumentPreview.aspx?name=&filename&type=jpg

/GetDocumentPreview.aspx?name=#filename&type=jpg

/GetDocumentPreview.aspx?name=+filename&type=jpg

У меня нет файла из-за символов #, &, + (я тестировал все символы).

Как передать параметр #, &, + в URL. Мне нужно использовать параметр URL, потому что я вызываю этот класс из всплывающей подсказки Javascript hover с изображениями.

Теги:
special-characters
filenames
url-parameters

3 ответа

3
Лучший ответ

Вам нужно избегать этих особых символов:

Эта функция делает это лучше всего:

Изображение 174551

Будьте осторожны, не используйте UrlEncode

Изображение 174551

  • 0
    ps это так же, как encodeUriComponent в JS.
1

Вы должны кодировать специальные символы, если вы помещаете их в URL-адрес.

Вы можете использовать HttpServerUtility.UrlEncode в своем строковом URL, прежде чем помещать его в место перенаправления гиперссылок/кнопок. Примером может служить:

string destinationURL = "http://www.contoso.com/default.aspx?user=specialCharacters";

NextPage.NavigateUrl = "~/Finish?url=" + Server.UrlEncode(destinationURL);

В вашем случае вы должны UrlEncode имена файлов перед их помещением в строку URL, специальные символы, упомянутые, будут использоваться как:

& = %26
+ = %2B

Подробнее вы можете увидеть здесь: http://msdn.microsoft.com/en-us/library/zttxte6w(v=vs.110).aspx

  • 0
    не используйте URL кодировать!
  • 0
    решил мою проблему!
0

Используйте urlencoded значение этих символов. Список можно найти здесь -

http://www.w3schools.com/tags/ref_urlencode.asp

например, & будет - %26.

Таким образом, /GetDocumentPreview.aspx?name=&filename&type=jpg будет - /GetDocumentPreview.aspx?name=%26filename&type=jpg

Ещё вопросы

Сообщество Overcoder
Наверх
Меню