我正在开发一个 Asp.Net Core API。
我的控制器声明
[ApiController]
public class BarController : Controller
{
...
}
我的端点看起来像这样
[HttpPost, Route("bars")]
public async Task<ActionResult> DoAsync(
[FromBody] UpdateBars command)
{
// Do something with the command
return Ok(result);
}
命令看起来像这样
public class UpdateBars
{
[Required]
public IEnumerable<string> Ids { get; set; }
// ... more properties
}
兼容性级别设置为 2.1
public IServiceProvider ConfigureSharedServices(IServiceCollection services)
{
// ...
services.AddMvc()
.AddControllersAsServices()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
// ...
}
老问题:我希望这会返回一个缺少 Ids 参数的 400 错误请求,但它无法返回绑定错误。我究竟做错了什么?
更新的问题:我希望这会返回一个 400 错误请求,其中缺少或为空的 Ids 参数。如果参数丢失(null),则响应符合预期,但如果它是空集合,则返回 200 ok。是否可以更改某些内容,以便在参数存在但为空时收到错误的请求?