Asp.net core ASP.NET MVC Core 1.0中的同步调用组件
我正在尝试使用ASP.NET 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(“示例
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);作为解决办法,但您的解决方案更好。只是标记为答案。