2009-10-30 22 views
10

Uso HttpUtility.UrlEncode per codificare qualsiasi valore utilizzato in una route.Correttamente url carattere di codifica dello spazio

Ho già risolto un problema con la codifica di barre in avanti. Il nuovo problema che ho ora è con gli spazi. Uno spazio è codificato come +.

Questo funziona sulla VS integrato Webserver, ma ho un problema con esso in IIS7 su Windows Server 2008. Se ho l'URL http://localhost/Home/About/asdas+sdasd

ottengo l'errore 404.11 - Richiesta contiene doppia sequenza di escape.

So che posso solo sostituire lo spazio con "% 20", ma non voglio preoccuparmi della codifica di propper. Esiste un UrlEncoder pronto per l'uso per MVC?

risposta

19

'' codificato su% 20 utilizza HttpUtility.UrlPathEncode.

+3

Ma UrlPathEncode non riesce a codificare & –

0

Qualsiasi codifica URL è più spesso progettato per funzionare sul componente del percorso dell'URL, la ragione perché diversi schemi hanno caratteri diversi nell'elenco di sicurezza. Cerca le tue librerie urlencoder e usale solo nel percorso e nella parte superiore dell'URL.

0
@HttpUtility.UrlPathEncode(path) 

UrlPathEncode codifica semplicemente il percorso dell'Url, anziché codificare l'intero Url.