@ogi Merci pour ça! Je ne savais pas que cela ne fonctionnait pas complètement avec un seul appel! J'ai couru Uri.UnescapeDataStringdeux fois et j'ai obtenu ce que je voulais !! : D
C0NFUS3D
2
IMHO mieux que la réponse acceptée parce que votre première suggestion fonctionne également dans les bibliothèques de classes portables (PCL)
Daniel Veihelmann
2
meilleure réponse! mais considérez comment vos paramètres sont imbriqués avant de décoder complètement. Par exemple, une valeur de paramètre pourrait être une URL encodée qui a elle-même un paramètre avec une autre URL encodée. Si vous la décodez complètement en une seule fois, vous ne pourrez plus dire ce qui était quoi. ce serait comme retirer toutes les parenthèses d'une déclaration d'algèbre. a = ((b + c) * d) si vous l'avez complètement échappé, la signification des composants peut être perdue a = b + c * d
DanO
2
UnescapeDataString n'est pas suffisant car il ne gérera pas plusieurs cas (par exemple, les paramètres dans une URL contenant un espace utilisent '+' mais UnescapeDataString ne les convertit pas intentionnellement en espaces). Uri gère plus qu'une simple URL, car la question concerne l'URL, nous devrions utiliser HttpUtility.UrlDecode
System.Web.HttpServerUtilityBase
, mais cela devrait déjà être importé dans ASP.NET MVC.ou
L'URL n'est pas entièrement décodée en un seul appel. Pour décoder complètement, vous pouvez appeler l'une de ces méthodes en boucle:
la source
Uri.UnescapeDataString
deux fois et j'ai obtenu ce que je voulais !! : DAvez-vous essayé
HttpServerUtility.UrlDecode
ouHttpUtility.UrlDecode
?la source
HttpServerUtility.UrlDecode
méthode d'instance, vous devez utiliserHttpContext.Current.Server.UrlDecode
.Essaye ça:
la source
Essayer:
la source