ASP .Net Core Http [GET],用于收集嵌套对象

时间:2018-10-11 09:32:13

标签: asp.net-core http-get

我想在查询字符串中使用嵌套对象的集合 喜欢

public class Range 
{
  public decimal From {get;set},
  public decimal To {get;set}
} 

public class SearchParams 
{
  public IEnumerable<Range> Sizes {get;set;}
}

我知道最好为此使用POST,但我不能更改现有合同 由于向后兼容

因此,问题-是否有任何选项可以在查询字符串中传递它?或将其作为字符串传递并在服务器中解析

1 个答案:

答案 0 :(得分:0)

假设您的操作方法收到一个SearchParams作为参数,名为para

public IActionResult Index(SearchParams para)
{
    return new JsonResult(para);
}

您可以按以下方式发送GET请求:

GET https://localhost:44386/?para.sizes[0].from=1.1&para.sizes[0].To=1.2&para.sizes[1].from=2.1&para.sizes[1].To=2.2& HTTP/1.1

查询字符串:

para.sizes[0].from=1.1&para.sizes[0].To=1.2&para.sizes[1].from=2.1&para.sizes[1].To=2.2

,响应将是:

HTTP/1.1 200 OK
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
Server: Kestrel
X-SourceFiles: =?UTF-8?B?RDpccmVwb3J0XDIwMThcMTBcMTFcU08uR2V0Q29sbGVjdGlvblxBcHA=?=

{
  "sizes": [{
    "from": 1.1,
    "to": 1.2
  }, {
    "from": 2.1,
    "to": 2.2
  }]
}