C# 返回ActionResult而不解压缩任务

C# 返回ActionResult而不解压缩任务,c#,asp.net-core,.net-core,C#,Asp.net Core,.net Core,我经常遇到这样的情况:我的服务返回任务,在我从控制器返回ActionResult之前,我必须解包这些任务 公共任务操作(int-id) { //无法将任务强制转换为任务 退货服务详情(id); } 服务返回的任务不能隐式转换为ActionResult,因此我最终在控制器中解包该任务。这样, 公共异步任务操作(int-id) { 返回等待服务。详细信息(id); //两者都有效 返回请求(); } 如果我没有将其包装在ActionResult中,我可以传递任务,但我不能返回其他类型的IActi

我经常遇到这样的情况:我的服务返回任务,在我从控制器返回
ActionResult
之前,我必须解包这些任务

公共任务操作(int-id)
{
//无法将任务强制转换为任务
退货服务详情(id);
}
服务返回的任务不能隐式转换为
ActionResult
,因此我最终在控制器中解包该任务。这样,

公共异步任务操作(int-id)
{
返回等待服务。详细信息(id);
//两者都有效
返回请求();
}
如果我没有将其包装在ActionResult中,我可以传递任务,但我不能返回其他类型的
IActionResults

公共任务操作(int-id)
{

return _fooService.Details(id);//您在执行任务之前忘记提到async

public async Task<Foo> Action(int id)
{
    return _fooService.Details(id); // <--- pass-through Task
    
    return BadRequest() // <-- Now it will run
}
公共异步任务操作(int-id)
{

return _fooService.Details(id);//转换另一个方向:do
return Task.FromResult(BadRequest())
@nlawalker但是
BadRequest()
不是type
Foo
啊,我误解了这个问题。你可以把它作为一个扩展方法:
公共静态异步任务AsActionResult(这个任务)=>等待任务;
。然后执行
返回_fooService.Details(id).AsActionResult();