'TestController.Post()': 不是所有代码路径 return 一个值

'TestController.Post()': not all code paths return a value

我正在 returning HttpResponseMessage,但我的代码仍然报错并抛出以下错误,

'TestController.Post()': not all code paths return a value

这里要return做什么?

public async Task<IHttpActionResult> Post()
    {
        var response = await IsDataValid();
        if (response)
            return Ok(new HttpResponseMessage(HttpStatusCode.OK));
    }

您只需再添加几行代码即可处理上述错误。

public async Task<IHttpActionResult> Post()
{
    var response = await IsDataValid();
    if (response)
        return Ok(new HttpResponseMessage(HttpStatusCode.OK));
    else
        return NotFound();
}

else 部分在这里很重要。

如果在 ApiController 之内,则无需 return HttpResponseMessage 如果 returning IHttpActionResult。使用控制器的辅助方法。

例如

public async Task<IHttpActionResult> Post() {
    var response = await IsDataValid();
    if (response)
        return Ok();

    return BadRequest();
}