【发布时间】:2020-03-23 15:47:03
【问题描述】:
我有 asp.net 核心 web api 应用程序,其中控制器类从 Controller : ControllerBase 扩展,现在我收到错误
非泛型方法 'ControllerBase.Ok()' 不能与类型参数一起使用
对于下面的api代码,这里有什么问题?
[HttpPost]
public async Task<bool> Post()
{
return Ok<bool>(await _someTask);
}
根据下面的评论,我是这样实现的,
[HttpPost]
public async Task<ActionResult<bool>> Post()
{
return Ok(await SomeTask());
}
private async Task SomeTask()
{
//some database insert operation
throw new NotImplementedException();
}
然后我在return Ok(await SomeTask()); 遇到错误,
无法从“void”转换为“object”Controller.cs 49 Active
【问题讨论】:
-
Ok<T>()不存在。您是否从早期的 aspnet 核心版本升级? -
没有。 it;s 全新的 asp.net core 3.1 web api 应用程序
-
@JohnWu 实际上,它应该返回
Task<IActionResult>,而IActionResult的实现应该是ActionResult<bool>- 所以最具描述性的返回类型应该是Task<ActionResult<bool>>。 -
为什么您希望您的操作方法具有
Task<bool>或Task<ActionResult<bool>>的返回类型?
标签: c# asp.net-core-3.1