Ответ 1
Вы можете использовать GetQueryNameValuePairs
метод расширения в HttpRequestMessage
, чтобы получить синтаксическую строку запроса в виде набора пар ключ-значение.
public IHttpActionResult Get()
{
var queryString = this.Request.GetQueryNameValuePairs();
}
И вы можете создать некоторые дополнительные методы расширения, чтобы заставить eeyer работать, как описано здесь: WebAPI: получение заголовков, значений QueryString и Cookie
/// <summary>
/// Extends the HttpRequestMessage collection
/// </summary>
public static class HttpRequestMessageExtensions
{
/// <summary>
/// Returns a dictionary of QueryStrings that easier to work with
/// than GetQueryNameValuePairs KevValuePairs collection.
///
/// If you need to pull a few single values use GetQueryString instead.
/// </summary>
/// <param name="request"></param>
/// <returns></returns>
public static Dictionary<string, string> GetQueryStrings(
this HttpRequestMessage request)
{
return request.GetQueryNameValuePairs()
.ToDictionary(kv => kv.Key, kv=> kv.Value,
StringComparer.OrdinalIgnoreCase);
}
}