@ogi Спасибо за это! Я не знал, что это не полностью работает только с одним звонком! Я Uri.UnescapeDataStringдважды побежал и получил то, что хотел !! : D
C0NFUS3D
2
ИМХО лучше, чем предполагаемый ответ, потому что ваше первое предложение также работает в Portable Class Libaries (PCLs)
Даниэль Вейхельманн
2
лучший ответ! но подумайте, как ваши параметры вложены, прежде чем полностью декодировать. Например, значением параметра может быть закодированный URL-адрес, который сам по себе имеет параметр с другим закодированным URL-адресом. Если вы полностью расшифруете его за один раз, вы не сможете больше сказать, что было чем. это было бы все равно, что вырвать все слова из выражения алгебры. a = ((b + c) * d) если вы полностью удалите его, значение компонентов может быть потеряно a = b + c * d
DanO
2
UnescapeDataString недостаточно, поскольку он не будет обрабатывать несколько случаев (например, параметры в URL-адресе, которые содержат пробел, используют '+', но UnescapeDataString намеренно не преобразует их в пробелы). Uri обрабатывает больше, чем просто URL, так как вопрос касается URL, мы должны использовать HttpUtility.UrlDecode
System.Web.HttpServerUtilityBase
, но это уже должно быть импортировано в ASP.NET MVC.или
URL не полностью расшифрован одним вызовом. Чтобы полностью декодировать, вы можете вызвать один из этих методов в цикле:
источник
Uri.UnescapeDataString
дважды побежал и получил то, что хотел !! : DВы пробовали
HttpServerUtility.UrlDecode
илиHttpUtility.UrlDecode
?источник
HttpServerUtility.UrlDecode
методу экземпляра, нужно использоватьHttpContext.Current.Server.UrlDecode
.Попробуй это:
источник
Пытаться:
источник