gpt4 book ai didi

asp.net-web-api - 如何以字典的形式访问所有查询字符串参数

转载 作者:行者123 更新时间:2023-12-02 15:49:47 25 4
gpt4 key购买 nike

我有一些动态查询字符串参数,我想将其作为IDictionary<string,string>进行交互。 。我该怎么做?

我试过了

public IHttpActionResult Get(FromUri]IDictionary<string, string> selections)

as suggested但对于

的查询
/api/MyController?selections%5Bsub-category%5D=kellogs

它总是给我一本包含 0 个项目的字典。

我什至不需要 selections字首。我实际上只需要所有查询字符串参数作为字典。我该如何做到这一点以及为什么上述方法不起作用?

最佳答案

您可以使用GetQueryNameValuePairs extension methodHttpRequestMessage 上获取已解析的查询字符串作为键值对的集合。

public IHttpActionResult Get()
{
var queryString = this.Request.GetQueryNameValuePairs();
}

您还可以创建一些进一步的扩展方法,使其更易于使用,如下所述:WebAPI: Getting Headers, QueryString and Cookie Values

/// <summary>
/// Extends the HttpRequestMessage collection
/// </summary>
public static class HttpRequestMessageExtensions
{
/// <summary>
/// Returns a dictionary of QueryStrings that's 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);
}
}

关于asp.net-web-api - 如何以字典的形式访问所有查询字符串参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419823/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com