2009-10-30 15 views
10

Uso HttpUtility.UrlEncode para codificar cualquier valor que se use en una ruta.Carácter de codificación del espacio de URL correctamente

Ya he resuelto un problema con la codificación de barras diagonales. El nuevo problema que tengo ahora es con espacios. Un espacio está codificado como +.

Esto funciona en el servidor web integrado VS, pero tengo un problema con él en IIS7 en Windows Server 2008. Si tengo la URL http://localhost/Home/About/asdas+sdasd

consigo el error 404.11 - Solicitud contiene la secuencia de escape doble.

Sé que puedo simplemente reemplazar el espacio por "% 20", pero no quiero preocuparme por la codificación propia. ¿Hay algún UrlEncoder listo para usar para MVC?

Respuesta

19

'' codificado para% 20 use HttpUtility.UrlPathEncode.

+3

Pero UrlPathEncode no puede codificar & –

0

Cualquier codificación de URL es más a menudo diseñada para trabajar en el componente de ruta de la url, porque los diferentes esquemas tienen caracteres diferentes en la lista de seguridad. Busque el urlencoder de su biblioteca y simplemente úselo en la ruta y en la parte superior de la url.

0
@HttpUtility.UrlPathEncode(path) 

UrlPathEncode solo codifica la ruta de la Url, en lugar de codificar toda la Url.

Cuestiones relacionadas