C# ASP Core 2.1型号活页夹和合格学院未绑定

C# ASP Core 2.1型号活页夹和合格学院未绑定,c#,asp.net,C#,Asp.net,我查看了其他几个帖子,并尝试实施它们的解决方案,但它们似乎不起作用:/ 我有一个带有3个参数的操作: public异步任务Post([FromBody]动态参数1,[FromQuery]int[]param2,[FromQuery]字符串参数3) 公共异步任务Post([FromBody]动态参数1,[FromQuery]列表参数2,[FromQuery]字符串参数3) http请求: 正文(json):{“测试”:123} Param1和param3按预期绑定,但param2或始终 nul

我查看了其他几个帖子,并尝试实施它们的解决方案,但它们似乎不起作用:/

我有一个带有3个参数的操作:

public异步任务Post([FromBody]动态参数1,[FromQuery]int[]param2,[FromQuery]字符串参数3)
公共异步任务Post([FromBody]动态参数1,[FromQuery]列表参数2,[FromQuery]字符串参数3)
http请求:

正文(json):{“测试”:123}

Param1和param3按预期绑定,但param2或始终 null(如果是集合)或int[0](如果是数组)

ModelState表示没有错误。但是,如果我手动检查 上下文:HttpContext.Request.Query[“param2”][0], HttpContext.Request.Query[“param2”][1]等。我可以从中获取值 对。另一篇帖子提到他们只发送了一个逗号分隔的邮件 收集和拆分它们,但我更喜欢使用模型活页夹 如果可能的话。任何帮助都将不胜感激


有两种方法可以解决这个问题:

  • 更改您的操作代码,如下所示:

    [HttpPost]
    public async Task<something> Post([FromBody]dynamic param1, [FromQuery(Name ="param2")]int[] param2, [FromQuery]string param3) {
        // ////
    }
    

    @你错了。通过asp.net设计,您可以通过多次调用查询字符串中的属性向列表中添加值,每次都表示查询字符串中的新条目list@MarcusH奥格兰德,我做到了。。。我发布的示例字符串正是这样做的。介意告诉我哪里错了吗?那真的管用!我必须包含(Name=“param2”)才能绑定数组。如果不在操作参数中添加(Name=“param2”),则使用查询字符串“/yourpath/?param1=testValue¶m2[0]=0¶m2[1]=1¶m2[2]=2¶m2[3]=34”将无法工作。谢谢@itminus,我还使用了“/yourpath/?param1=testValue¶m2=0¶m2=1¶m2=2¶m2=34”,并且它也可以工作,但只有在操作参数有(name=“param2”)时才起作用。我希望我能理解活页夹出现问题的原因,或者如果这是预期的。无论如何,再次感谢你的帮助!