Я занимаюсь разработкой интернет-магазина, в котором у меня есть ViewComponent, который используется для визуализации html корзины покупок в панели навигации веб-сайта.
Я рендеринг компонента представления в общем _Layout.cshtml, выполнивthis:
@await Component.InvokeAsync("NavbarShoppingCart")
Раньше он работал нормально в MVC CORE 2.0, но с тех пор, как я обновился до 2.2, тот же код выдает исключение InvalidOperationException:
InvalidOperationException: метод 'Invoke' представленияКомпонент ProjectName.Web.Views.Shared.NavbarShoppingCartViewComponent не может вернуть задачу.
Вот класс ViewComponent:
public class NavbarShoppingCartViewComponent : ViewComponent
{
private readonly IShoppingCartManager shoppingCartManager;
public NavbarShoppingCartViewComponent(IShoppingCartManager shoppingCartManager)
{
this.shoppingCartManager = shoppingCartManager;
}
public IViewComponentResult Invoke()
{
var shoppingCartId = this.HttpContext.Session.GetShoppingCartId();
var items = this.shoppingCartManager.GetCartItems(shoppingCartId);
return View("NavbarShoppingCart", items.Count());
}
}
Метод Invoke () явно возвращает представление, а не задача.Я не понимаю, почему это выдает ошибку сейчас.Есть идеи?