'TestController.Post()':并非所有代码路径都返回值

时间:2019-11-19 04:23:31

标签: c# asp.net-web-api2

我正在返回HttpResponseMessage,但是我的代码仍然抱怨并抛出错误,

  

'TestController.Post()':并非所有代码路径都返回值

这里返回什么?

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

2 个答案:

答案 0 :(得分:3)

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

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

其他部分在这里很重要。

答案 1 :(得分:1)

如果在ApiController内,则返回HttpResponseMessage时无需返回IHttpActionResult。使用控制器的辅助方法。

例如

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

    return BadRequest();
}