C#Web API-查询字符串中的方括号符号

问题描述 投票:0回答:1

我正在构建一组Web API,这些API以JSON格式返回数据。外部应用程序执行http(GET)请求,如下所示:

http://localhost:58807/api/items/search?qualifier=year&sort[0][field]=Year&sort[0][dir]=desc&sort[1][field]=Title&sort[1][dir]=asc

这是管理http请求的方法:

[HttpGet]
[Route("search")]
public IHttpActionResult GetItems(string qualifier, IEnumerable<Dictionary<string, string>> sort)
{
     Does something;
}

这是问题:qualifier参数正确赋值时,sort(查询字符串中的方括号表示法)参数改为null。怎么了?

谢谢。Filippo

c# asp.net-web-api2
1个回答
0
投票

一种解决方法是解析查询,您可能需要这样做,因为模型绑定不知道如何解析参数:

var sortParameters = Request.Query.Where(x => x.Key.StartsWith("sort"));
var sortFilters = new List<SortFilter>();
foreach (var sortParamter in sortParameters)
{
    sortFilters.AddRange(ParseSortParameter(sortParameter)); // TODO: implementation of ParseSortParameter
}


public class SortFilter
{
    public string FieldName { get; set; }
    public strin Direction { get; set; }
    // ...
}

[Request的类型为HttpRequest

© www.soinside.com 2019 - 2024. All rights reserved.