无法将void转换为asp.netcore中的对象



我在asp.net核心中编写了一个api端点,如果出现错误,则无法将void转换为对象我在排队时出错了。我所理解的是SendEmailReminder方法返回void,但我如何在控制器中处理它。如果我删除wait,错误就会出现,但随后我会收到该方法将同步执行的警告。有人能帮吗

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

您可以按照以下方式重构代码,假设您的HTTP调用没有返回任何内容。通过这样做,您将返回HTTP204。

[HttpPost]
[Route("sendEmailReminder")]
public async Task<IActionResult> SendEmailReminders()
{
await _counterpartyProposalService.SendEmailReminder();
NoContent();
}
public async Task SendEmailReminder()
{
var stepCode = StepCodes.BasicInformation;
var command = _commandResolver(stepCode, null);
await command.ExecuteEmailReminder();
}

这是Ok方法的签名:

public virtual OkObjectResult Ok([ActionResultObjectValue] object value)

删除await关键字时没有得到错误的原因是OkTask对象作为输入。

最新更新