Есть представление страницы с товарами. На ней отображена, через частичное представление, корзина. На самой корзине, при добавлении товара в нее (нажатие кнопки "добавить в корзину") появляется кружок с количеством заказов и в контроллере происходит добавление в поток новых записей, а так же возвращение страницы. Проблема в том что сейчас метод контроллера обновляет полностью всю страницу, а мне нужно что бы обновлял только цифру на корзине
public IActionResult AddToCart(int productId, string returnUrl, int quantityInProduct)
{
Product product = repository.Products.FirstOrDefault(p => p.ProductID == productId);
if (product != null)
{
cart.AddItem(product, quantityInProduct);
}
return RedirectToAction("List", "Product", new { returnUrl });
}
если я пишу вот так
return ViewComponent("CartSummary");
то возвращает только частичное представление без всей страницы.
вот код частичного представления:
@model Cart
<div style="width: 100px; z-index: 3;">
<span>
@Model.ComputeTotalValue().ToString("c")
</span>
<a class="iconCart"
asp-controller="Cart" asp-action="Index"
asp-route-returnurl="@ViewContext.HttpContext.Request.PathAndQuery()">
</a>
@if (Model.Lines.Count() > 0)
{
<span class="cartSum">
@Model.Lines.Sum(x => x.Quantity)
</span>
}
</div>
а вот компонент:
public class CartSummaryViewComponent : ViewComponent
{
private Cart cart;
public CartSummaryViewComponent(Cart cartService)
{
cart = cartService;
}
public IViewComponentResult Invoke()
{
return View(cart);
}
}