asp.net-web-api – 如何访问所有querystring参数作为字典
发布时间:2020-12-15 18:36:52 所属栏目:asp.Net 来源:网络整理
导读:我有一些动态查询字符串参数,我想与IDictionary string,string进行交互。我该如何做? 我试过了 public IHttpActionResult Get(FromUri]IDictionarystring,string selections) as suggested但是查询 /api/MyController?selections%5Bsub-category%5D=kello
我有一些动态查询字符串参数,我想与IDictionary< string,string>进行交互。我该如何做?
我试过了 public IHttpActionResult Get(FromUri]IDictionary<string,string> selections) as suggested但是查询 /api/MyController?selections%5Bsub-category%5D=kellogs 它总是给我一个有0个项目的字典。 我甚至不需要选择前缀。我真的只需要所有的querystring参数作为字典。我该怎么做,为什么上述不行? 解决方法
您可以使用HttpRequestMessage上的
GetQueryNameValuePairs extension method获取解析的查询字符串作为键值对的集合。
public IHttpActionResult Get() { var queryString = this.Request.GetQueryNameValuePairs(); } 并且您可以创建一些其他的扩展方法,以使eaiser能够如下所述进行操作: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 – 来自.ascx的动态加载ListView模板
- asp.net-mvc – 如何在json post期间发生异常时阻止asp.net
- asp.net-mvc – 在asp.net mvc中存储和检索用户的设置
- asp.net – 使用javascript调整大小的Gridview列
- Asp.net mvc 知多少(四)
- asp.net-mvc-3 – ASP.Net MVC 3不显眼的验证不适用于部分视
- asp.net-core – ASP.NET 5,希望将实体框架与Web Project分
- asp.net-mvc – ASP.NET MVC – 向ActionLinks添加querystr
- ASP.NET WebForms DropDownList数据绑定奇怪的行为?
- asp.net-core – 为什么默认的mvc6模板针对多个DNX版本?
推荐文章
站长推荐
- 奇怪的#_ = _出现在response.redirect ASP.NET之
- asp.net – web.config文件设置是否覆盖IIS设置?
- asp.net – 名称空间“CrystalDecisions.Web”中
- Asp.net core利用IIS在windows上进行托管步骤详解
- asp.net-mvc-3 – 无法在HttpStatusCodeResult中
- 如何在Vista上的IIS7下调试ASP.NET应用程序?
- asp.net – 如何在iFrame上显示Div或Panel
- Asp.net MVC同名视图,路径不同
- 单个ASP.NET UserControl事件的多个订阅者?
- asp.net在页面之间传递类的实例
热点阅读