[HttpPost("test")]
public IActionResult Teste(int? id)
{
if (!id.HasValue)
return BadRequest();
...
}
如何在不使用'int?'的情况下返回badrequest?如果客户端没有发送id?
在这种情况下,有一些简单的方法可以自动返回badrequest吗?
答案 0 :(得分:1)
为什么不把id放在这样的路径中:
[HttpPost("test/{id}")]
public IActionResult Teste(int id)
{
if (id == default(int))
return BadRequest();
...
}
如果需要,您仍然可以确保id不是0(或更复杂的验证)。 这不会产生400 Bad Request响应,但我认为这是最合适的方式。除非您希望让用户传入请求正文中的id,否则您可以执行以下操作:属性验证并检查ModelState以返回错误请求。
答案 1 :(得分:0)
我不知道如果在参数无效的情况下如何自动发送400,但作为快速解决方法,您可以执行以下操作:
value
设置默认值,您可以轻松识别无效参数并返回400或做您喜欢的任何事情。
此外,这消除了您提到的值为0的输入的模糊性。
答案 2 :(得分:-1)
您可以使参数可选具有默认值,如
[HttpPost("test")]
public IActionResult Teste(int id=0)
{
if (id==0)
return BadRequest();
...
}