【发布时间】:2020-06-02 10:11:30
【问题描述】:
我有没有 [FromBody] 参数的端点:
[HttpPost("{id:int}/publish")]
public async Task<IActionResult> Publish()
{
<do some stuff>
return Ok();
}
但是现在我需要添加 [FromBody] 参数,使旧代码仍然能够在没有参数的情况下使用此端点:
[HttpPost("{id:int}/publish")]
public async Task<IActionResult> Publish([FromBody] PublishRequest request)
{
<do some stuff>
return Ok();
}
但如果我以这种方式添加它并尝试用空主体调用此端点,我会得到 415 (Unsupported Media Type) 响应。
我想让这个更改向后兼容。因此,应该可以在没有请求正文和内容类型标头的情况下使用此端点。有可能吗?
【问题讨论】:
-
只是好奇:ID参数去哪了?你是如何在你的中提到它的?我会在方法签名上期待它。
-
ATM 似乎不支持可选的
FromBody参数,但似乎在this github 问题中发布了解决方法。 -
您的问题看起来很像这样:stackoverflow.com/questions/44538772/…您的解决方案是否允许使用 [FromForm] 而不是 [FromBody]?
-
@GuruStron,这正是我所需要的!您可以发表您的评论作为答案,我会投赞成票!
-
@ant 很高兴它有帮助!添加为答案。
标签: .net asp.net-core .net-core