HttpGet ActionResult 方法并非所有代码路径都返回值

问题描述

我有一个 .Net Core 项目,我试图在其中从数据库获取数据,但名为 Get() 的 ActionResult 方法显示编译器错误。我最初尝试使用 return Ok 作为 return 语句,但问题仍然存在,我删除了 return 语句,但仍然看到错误,“并非所有代码路径都返回值”。还有另一个问题是询问可能类似的 post 方法。但这是关于带有返回 Ok 语句的 GET。

问题:

[HttpGet] 方法不起作用:

public async Task<ActionResult<IEnumerable<Value>>> Get()
{
    var values = await _context.Values.ToListAsync();
}

编辑:解决方案(我缺少 a 和正确的 return 语句,我还需要将 values 传递给 return 语句。

解决方案:

public async Task<ActionResult<IEnumerable<Value>>> Get()
{
    var values = await _context.Values.ToListAsync();
    return Ok(values);
}

解决方法

您必须使用以下语法:

public ActionResult<IEnumerable<Value>> Get()
{
return context.Values.ToArray();
}