L'URL corretto codifica il carattere dello spazio
-
22-07-2019 - |
Domanda
Uso HttpUtility.UrlEncode per codificare qualsiasi valore utilizzato in una route.
Ho già risolto un problema con la codifica delle barre. Il nuovo problema che ho ora è con gli spazi. Uno spazio è codificato come +.
Funziona sul VS Webserver integrato, ma ho un problema con IIS7 su Windows Server 2008.
Se ho l'URL http://localhost/Home/About/asdas+sdasd
Ricevo l'errore 404.11 - La richiesta contiene una doppia sequenza di escape.
So di poter semplicemente sostituire lo spazio con "% 20 " ;, ma non voglio preoccuparmi della codifica del propper. Esiste un UrlEncoder pronto per l'uso per MVC là fuori?
Soluzione
'' codificato in% 20 usa HttpUtility.UrlPathEncode
.
Altri suggerimenti
Qualsiasi codifica URL è molto spesso progettata per funzionare sul componente path dell'url, il motivo perché diversi schemi hanno caratteri diversi nell'elenco sicuro. Cerca le tue librerie urlencoder e usale nel percorso e sopra la porzione dell'url.
@HttpUtility.UrlPathEncode(path)
UrlPathEncode codifica semplicemente il percorso dell'URL, anziché codificare l'intero URL.