【发布时间】:2021-06-30 16:52:13
【问题描述】:
我在 asp.net 核心中编写了一个 api 端点,并且出现错误无法将 void 转换为对象 我遇到错误。我理解的是 SendEmailReminder 方法返回 void 但我如何在控制器中处理它。如果我删除等待,错误就会消失,但我会收到该方法将同步执行的警告。有人可以帮忙吗
return Ok(await _counterpartyProposalService.SendEmailReminder());
控制器
[HttpPost]
[Route("sendEmailReminder")]
public async Task<IActionResult> SendEmailReminders()
{
return Ok(await _counterpartyProposalService.SendEmailReminder());
}
public async Task SendEmailReminder()
{
var stepCode = StepCodes.BasicInformation;
var command = _commandResolver(stepCode, null);
await command.ExecuteEmailReminder();
}
【问题讨论】:
-
await _counterpartyProposalService.SendEmailReminder(); return Ok()?为什么要把事情复杂化? -
您的
SendEmailReminder函数返回一个无类型的任务。一旦你await它,就没有返回类型。Task在概念上等同于Task<void>。当您调用Ok时,它期望有一个参数 - 任何参数。你没有。我相信您可以通过await拨打SendEmailReminder逃脱,一旦完成,只需拨打Ok()
标签: c# asp.net-core