Как мне кодировать полную строку URL в ASP MVC - PullRequest
5 голосов
/ 06 мая 2011

Я получил строку URL-адреса и хотел бы преобразовать ее в допустимый http-URL:

Например:

"http://one/two/three%four/five#five?six seven" должно превратиться в "http://one/two/three%25four/five%23five?six%20seven"

Однако HttpUtility.UrlEncode не помогает, так как кодирует всю строку (включая допустимую "://").

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 06 мая 2011

Смотрите, если вы этого хотите?

   Uri uri = new Uri("http://one/two/three%four/#five?six seven");
   string url = uri.AbsoluteUri + uri.Fragment; 
   // url will be "http://one/two/three%25four/#five?six%20seven#five?six%20seven"
0 голосов
/ 06 мая 2011

Как насчет разделения и воссоединения:

string url = "http://one/two/three%four/#five?six seven";
string encodedUrl = "http://" + string.Join("/", url.Substring(7).Split('/').Select(part => HttpUtility.UrlEncode(part)).ToArray());
...