我看过其他几篇文章,并尝试实现他们的解决方案,但它们似乎不起作用:/
我有3个参数的动作:
public async Task<something> Post([FromBody]dynamic param1, [FromQuery]int[] param2, [FromQuery]string param3)
public async Task<something> Post([FromBody]dynamic param1, [FromQuery]List<int> param2, [FromQuery]string param3)
http请求:http://localhost:8080/api/someResource?param1=testValue¶m2=0¶m2=1¶m2=2¶m2=34
body(json):{“ test”:123}
Param1和param3如预期的那样绑定,但是param2总是 null(如果是集合)或int [0](如果是数组)。
ModelState表示没有错误。但是,如果我手动检查 上下文:HttpContext.Request.Query [“ param2”] [0], HttpContext.Request.Query [“ param2”] [1],依此类推。 办法。另一则帖子提到他们只是发送了逗号分隔 收集并拆分它们,但我更喜欢使用模型活页夹 如果可能的话。任何帮助将不胜感激。
答案 0 :(得分:0)
有两种解决方法:
如下更改您的操作代码:
[HttpPost]
public async Task<something> Post([FromBody]dynamic param1, [FromQuery(Name ="param2")]int[] param2, [FromQuery]string param3) {
// ////
}
然后您可以按照上述方式发送请求。
[]
发送QueryString:
POST /yourpath/?param1=testValue¶m2[0]=0¶m2[1]=1¶m2[2]=2¶m2[3]=34 HTTP/1.1
Content-Type : application/json
{"test":123}
两者都应按预期工作。