@ogi Gracias por eso! ¡No sabía que no funcionaba completamente con solo una llamada! ¡Corrí Uri.UnescapeDataStringdos veces y obtuve lo que quería! : D
C0NFUS3D
2
En mi humilde opinión, mejor que la respuesta aceptada porque su primera sugerencia también funciona en Portable Class Libaries (PCL)
Daniel Veihelmann
2
¡la mejor respuesta! pero considere cómo se anidan sus parámetros antes de decodificar completamente. por ejemplo, un valor de parámetro podría ser una URL codificada que a su vez tiene un parámetro con otra URL codificada. Si lo decodifica completamente de una vez, ya no podrá saber qué era qué. sería como sacar a todos los padres de una declaración de álgebra. a = ((b + c) * d) si no lo escapa por completo, el significado de los componentes se puede perder a = b + c * d
DanO
2
UnescapeDataString no es suficiente ya que no manejará varios casos (por ejemplo, los parámetros en una URL que contienen un espacio usan '+' pero UnescapeDataString intencionalmente no los convierte en espacios). Uri maneja más que solo URL, ya que la pregunta es acerca de la URL que deberíamos usar HttpUtility.UrlDecode
System.Web.HttpServerUtilityBase, pero eso ya debería importarse en ASP.NET MVC.o
La URL no está completamente decodificada con una llamada. Para decodificar completamente, puede llamar a uno de estos métodos en un bucle:
fuente
Uri.UnescapeDataStringdos veces y obtuve lo que quería! : D¿Has probado
HttpServerUtility.UrlDecodeoHttpUtility.UrlDecode?fuente
HttpServerUtility.UrlDecodecuál es un método de instancia, se debe usarHttpContext.Current.Server.UrlDecode.Prueba esto:
fuente
Tratar:
fuente