Asp.net core ASP.NET MVC Core 1.0中的同步调用组件

Asp.net core ASP.NET MVC Core 1.0中的同步调用组件,asp.net-core,Asp.net Core,我正在尝试使用ASP.NET Core 1.0调用同步组件,因此: public class ExampleViewComponent : ViewComponent { public IViewComponentResult InvokeAsync() { ExampleModel model = new ExampleModel(2); return View(model); } } 并尝试按如下方式调用它: @Component.InvokeAsync(“示例

我正在尝试使用ASP.NET Core 1.0调用同步组件,因此:

public class ExampleViewComponent : ViewComponent {

  public IViewComponentResult InvokeAsync() {
    ExampleModel model = new ExampleModel(2);
    return View(model);
  }

}
并尝试按如下方式调用它:

@Component.InvokeAsync(“示例”)

但是我得到了一个错误:

InvalidOperationException: Method 'InvokeAsync' of view component 'MVCApp.Components.ExampleViewComponent' should be declared to return Task<T>.    
InvalidOperationException:应声明视图组件“MVCApp.Components.ExampleViewComponent”的方法“InvokeAsync”以返回任务。
我使用InvokeAsync是因为InvokeAsync在1.0中被删除

我该怎么做

InvalidOperationException:应声明视图组件“MVCApp.Components.ExampleViewComponent”的方法“InvokeAsync”以返回任务

阅读信息并按照说明进行操作

public class ExampleViewComponent : ViewComponent {
    public Task<IViewComponentResult> InvokeAsync() {
        ExampleModel model = new ExampleModel(2);

        // returns a finished task
        return Task.FromResult<IViewComponentResult>(View(model));
    }
}
公共类示例ViewComponent:ViewComponent{
公共任务InvokeAsync(){
ExampleModel模型=新ExampleModel(2);
//返回已完成的任务
返回Task.FromResult(视图(模型));
}
}
InvalidOperationException:应声明视图组件“MVCApp.Components.ExampleViewComponent”的方法“InvokeAsync”以返回任务

阅读信息并按照说明进行操作

public class ExampleViewComponent : ViewComponent {
    public Task<IViewComponentResult> InvokeAsync() {
        ExampleModel model = new ExampleModel(2);

        // returns a finished task
        return Task.FromResult<IViewComponentResult>(View(model));
    }
}
公共类示例ViewComponent:ViewComponent{
公共任务InvokeAsync(){
ExampleModel模型=新ExampleModel(2);
//返回已完成的任务
返回Task.FromResult(视图(模型));
}
}

是我错了还是您在方法返回中缺少异步?然后需要在方法代码中添加一个wait,它没有任何异步操作。这就是问题所在。不,您不需要
async
。仅当您真正执行异步操作并使用
wait
时。不过,您可以返回已完成的任务。我将更新itI正在使用等待任务。延迟(0);作为解决办法,但您的解决方案更好。只是标记为答案。是我错了还是在方法返回中缺少异步?然后需要在方法代码中添加一个wait,它没有任何异步操作。这就是问题所在。不,您不需要
async
。仅当您真正执行异步操作并使用
wait
时。不过,您可以返回已完成的任务。我将更新itI正在使用等待任务。延迟(0);作为解决办法,但您的解决方案更好。只是标记为答案。