【发布时间】:2020-11-09 16:47:33
【问题描述】:
我正在尝试将 Query 和 Header 参数从 Controller 操作绑定到一个模型:
请求模型:
public class MyRequest
{
[FromQuery]
public string QueryParameter { get; set; }
[FromHeader]
public string HeaderParameter { get; set; }
}
控制器动作:
[HttpGet]
public ActionResult<MyResponse> FooAction(MyRequest myRequest)
{
...
}
问题在于:
- Swagger 请求输入 json:
{
"QueryParameter": "string",
"HeaderParameter": "string"
}
- 即使我尝试
curl这个端点,我也会得到“不支持的媒体类型”。
但是,如果我只是在控制器的操作中添加 [FromQuery]:
public ActionResult<MyResponse> FooAction([FromQuery] MyRequest myRequest)
然后它按预期工作。问题在于 - 不太清楚:“如果您有 FromHeader 字段,为什么要添加 FromQuery?”
我可以制作两个单独的模型,一个用于查询参数,另一个用于标头参数,但我真的很想找到一种方法将它们都放入同一个模型中。
【问题讨论】:
-
如何发送请求? HttpGet 还是 HttpPost?
-
@SelimYıldız 这是一个 GET
标签: c# asp.net asp.net-core asp.net-web-api model-binding