asp.net-core - 用于收集嵌套对象的 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,但由于向后兼容性,我无法更改现有合同
所以问题是 - 是否有任何选项可以在查询字符串中传递它?或将其作为字符串传递并在服务器中解析
解决方案
假设你的 action 方法接收到一个SearchParams
as 参数,它被命名为para
。
public IActionResult Index(SearchParams para)
{
return new JsonResult(para);
}
您可以发送如下GET
请求:
GET https://localhost:44386/?para.sizes[0].from=1.1¶.sizes[0].To=1.2¶.sizes[1].from=2.1¶.sizes[1].To=2.2& HTTP/1.1
请求参数 :
para.sizes[0].from=1.1¶.sizes[0].To=1.2¶.sizes[1].from=2.1¶.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
}]
}
推荐阅读
- google-maps - 在 xamarin 表单地图上打开上下文菜单
- java - 如何从 Java 应用程序获取 Jenkins 环境变量?
- r - 两个轴承之间的差异(角度)
- c# - C# 从 .txt 扩展名中删除具有更改文件名的行
- python - Tensorflow 中的 CNN 手术:从批量大小 1 到批量大小无
- ruby-on-rails - 跳过 Devise gem 的电子邮件验证会导致唯一性错误
- asterisk - MYSQL() 函数在星号拨号计划中不起作用
- c - 指针 MISRA 违规的算术
- javascript - 可以对外部网页进行ajax调用吗?
- java - 用于用户管理的 Vaadin ThreadLocal