Asp.net core 用于嵌套对象集合的ASP.Net核心Http[GET]
我想在查询字符串中使用嵌套对象的集合 像Asp.net core 用于嵌套对象集合的ASP.Net核心Http[GET],asp.net-core,http-get,Asp.net Core,Http Get,我想在查询字符串中使用嵌套对象的集合 像 公共类范围 { 来自{get;set}的公共十进制数, 到{get;set}的公共十进制数 } 公共类SearchParams { 公共IEnumerable大小{get;set;} } 我知道使用POST更好,但我不能更改现有合同 因为向后兼容 那么问题是,是否有任何选项可以在查询字符串中传递它?或者将其作为字符串传递并在服务器中解析它假设您的操作方法接收到一个名为para的SearchParams作为参数 public IActionResult
公共类范围
{
来自{get;set}的公共十进制数,
到{get;set}的公共十进制数
}
公共类SearchParams
{
公共IEnumerable大小{get;set;}
}
我知道使用POST更好,但我不能更改现有合同
因为向后兼容
那么问题是,是否有任何选项可以在查询字符串中传递它?或者将其作为字符串传递并在服务器中解析它假设您的操作方法接收到一个名为
para
的SearchParams
作为参数
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
}]
}
@user681055:如果从查询字符串的怪物中看不出,您应该避免通过GET发送复杂的请求数据。改为发帖子。
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
}]
}