Проблема с вставкой границы режима совместимости IE8 и IE8

Вы можете создать новый записываемый экземпляр HttpValueCollection, вызвав System.Web.HttpUtility.ParseQueryString(string.Empty), а затем использовать его как любой NameValueCollection. После того, как вы добавили нужные значения, вы можете вызвать ToString в коллекции, чтобы получить строку запроса, следующим образом:

NameValueCollection queryString = System.Web.HttpUtility.ParseQueryString(string.Empty);

queryString["key1"] = "value1";
queryString["key2"] = "value2";

return queryString.ToString(); // Returns "key1=value1&key2=value2", all URL-encoded

HttpValueCollection является внутренним, и поэтому вы не можете напрямую построить пример. Однако, как только вы получите экземпляр, вы можете использовать его, как и любой другой NameValueCollection. Поскольку фактический объект, с которым вы работаете, является HttpValueCollection, вызов метода ToString вызовет переопределенный метод на HttpValueCollection, который форматирует коллекцию в виде строки запроса, закодированной в URL.

После поиска SO и в Интернете для ответа на аналогичную проблему, это самое простое решение, которое я смог найти.

.NET Core

Если вы работаете в .NET Core, вы можете использовать Microsoft.AspNetCore.WebUtilities.QueryHelpers, что значительно упрощает это.

https://docs.microsoft.com/en-us/aspnet/core/api/microsoft.aspnetcore.webutilities.queryhelpers

0
задан Vzupo 24 February 2015 в 17:55
поделиться