2011-05-06 24 views
5

puedo obtener una cadena URL y me gustaría transformarlo a un URL http legal:¿Cómo codificar una cadena URL completa en ASP MVC

Por ejemplo:

"http://one/two/three%four/five#five?six seven" debe convertirse en "http://one/two/three%25four/five%23five?six%20seven"

Sin embargo, HttpUtility.UrlEncode no ayuda, ya que codifica toda la cadena (incluida la legal "://").

Gracias de antemano

Respuesta

4

Ver si esto es lo que quieres?

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

¿Es esta solución válida para cualquier URL? –

0

¿Qué hay de la división y la reincorporación:

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()); 
Cuestiones relacionadas