问题描述
在.NET Core 3.x中为 GET 端点接收IEnumerable
作为URI参数的最佳方法是什么
在更深的上下文中:我想做的是根据许多GUID筛选出数据。
到目前为止,我已经拥有
[HttpGet]
public ActionResult Get(int allowedMissing,IEnumerable<Guid> ids)
.
.
.
我这样使用Postman呼叫端点:
/endpoint?allowedMissing=2&ids=cab0cfcb-8eb2-4313-8064-e7b0841d4f8a&ids=b2b944c2-6b4a-4c32-9a2f-472b891e4843
这将导致415 Unsupported Media Type
不会碰到控制器内部的任何断点。
解决方法
好的,因此在Action中接收IEnumerable
的默认设置似乎在body
中,并且如果作为查询发送,则需要用FromQuery
装饰参数。
更改此设置可以解决我的问题:
[HttpGet]
public ActionResult Get(int allowedMissing,[FromQuery] IEnumerable<Guid> ids)
.
.
.