【发布时间】:2020-04-29 09:47:34
【问题描述】:
我需要创建一个带有两个 List 参数的 HttpGet 方法,但是我收到了这个错误:
有多个参数被指定或推断为从请求正文绑定。每个动作只能从正文绑定一个参数。检查以下参数,并使用“FromQueryAttribute”指定从查询绑定,“FromRouteAttribute”指定从路由绑定,使用“FromBodyAttribute”指定要从正文绑定的参数:
MyObject 有两个属性:
public class MyObject
{
public int Prop1 { get; set; }
public int Prop2 { get; set; }
}
我尝试过的抛出异常的方法
方法一
[HttpGet]
public IActionResult Get(List<MyObject> obj1, List<MyObject> obj2)
方法二
[HttpGet]
[Route("{obj1}/{obj2")]
public IActionResult Get(List<MyObject> obj1, List<MyObject> obj2)
方法三
[HttpGet("{obj1}/{obj2")]
public IActionResult Get(List<MyObject> obj1, List<MyObject> obj2)
使用FromQueryAttribute
我尝试使用:
[HttpGet]
public IActionResult Get([FromQueryAttribute] List<MyObject> obj1, [FromQueryAttribute] List<MyObject> obj2)
而且它不会抛出异常,但是我不知道如何通过查询属性传递这些参数?
提前致谢
附言我找到了How to pass multiple parameters to a get method in ASP.NET Core 和Pass a list of complex object in query string to WEB API 线程但没有帮助我。
【问题讨论】:
标签: asp.net-core asp.net-web-api asp.net-web-api-routing