【问题标题】:HttpGet ActionResult method not all code paths return a value [duplicate]HttpGet ActionResult 方法并非所有代码路径都返回值[重复]
【发布时间】:2020-12-24 18:02:42
【问题描述】:

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

问题:

[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);
}

【问题讨论】:

  • 你需要从方法中返回一些东西。将代码和错误显示为文本而不是图像,并阅读 How to Ask 并展示您对错误消息的研究。
  • 谢谢,我会阅读如何提问并更新问题。您的评论和下面的 Sergeys 导致了解决方案。我放了“return Ok(values)”,现在似乎已经解决了。当新问题出现时,我可能会提出一个新问题。惊人而快速的反应在这里。爱堆栈溢出!
  • @DmitryPavlov 感谢您的参与,我错过了一个返回语句,我也错过了将“值”传递到返回语句中,解决方案是返回 Ok(值),我会看看在您建议的链接以获取更多知识。

标签: .net asp.net-mvc entity-framework asp.net-core .net-core


【解决方案1】:

你必须使用这个语法:

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

【讨论】:

    猜你喜欢
    • 2014-06-05
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 2019-09-15
    • 2017-08-18
    • 1970-01-01
    相关资源
    最近更新 更多