2017-01-09 2 views
1

У меня есть ниже код:Что все особенные персонажи в Ури?

string myString = "test://mytest/v1.0~admin#1~password"; 
var myUri = new Uri(myString); 

Я нахожу часть после # не в myUri.LocalPath.

Я попытался заменить хеш (#) на ' или &, проблем нет. Где я могу знать, все специальные символы, такие как #, вызовут ту же проблему в Uri?

+0

Часть после # не является * предположительной * частью 'LocalPath' ... символ' # 'ограничивает фрагментарную часть URI. –

+0

Я нахожу ниже код может содержать # в uri: myString = myString.Replace ("#", Uri.HexEscape ('#')); Я нахожу его здесь: https: //social.msdn.microsoft.com/Forums/vstudio/en-US/b1c72950-e07e-4935-bd70-7b5d68da6437/uri-class-not-works-for-ftpwebrequest-if-having -special-characters-in-uri-path-help? forum = netfxbcl Есть ли общий метод в C# для этого преобразования для меня для всей строки? Если есть более специальные символы, а не только «#», – spspli

ответ

0

Хэш «#» доступен только клиенту и не отправляется на сервер. К нему можно получить доступ из JS для навигации на стороне клиента (например, одностраничные приложения). Амперсанд используется как разделитель для значений, переданных в запрос GET после вопросительного знака. Например: http://example.com/controller/action?a=1&b=2&c=3#client-only передает целые значения в a, b и c на сервер, где они будут либо разбираться в параметрах метода. Раздел после «#» игнорируется сервером.

Смежные вопросы