Задать вопрос
@JoraInTheSky

Два действия на один Ajax запрос?

Есть форма для добавления товаров в корзину,
@using (Ajax.BeginForm("AddCart", "Cart", new AjaxOptions { UpdateTargetId = "res" }))
            {
                <div class="pull-left">
                    @Html.HiddenFor(x => x.Id)
                    <input type="submit" class="btn btn-default" value="Добавить в корзину" />
                </div>
            }

метод AddCart добавляет товар в корзину и возвращает частичное представление которое обновляет счетчик количества товаров в корзине
[HttpPost]
        public ActionResult AddCart(int Id)
        {
            AddProductToCart(id);
            return PartialView();
        }

Уже в корзине когда выведены все товары которые в ней находятся, вызывается форма которая удаляет товар из корзины:
@using (Ajax.BeginForm("RemoveFromCart", "Cart", new AjaxOptions { UpdateTargetId = "tabcart" }))
                        {
                                @Html.Hidden("Id", line.Product.Id)
                                <input type="submit" class="btn btn-default" value="Удалить" />
                        }

Метод RemoveFromCart удаляет товар из корзины и возвращает новое частичное представлении таблицы с товарами.
[HttpPost]
        public ActionResult RemoveFromCart(int Id)
        {
            RemoveProductFromCart(id);
            return PartialView(new CartIndexViewModel
            {
                Cart = GetCart(),
                ReturnUrl = null
            }); 
        }


Но счетчик с количеством товаров в шапке не обновляется, так вот вопрос как мне одним действием ajax действием обновить содержание корзины и обновить счетчик количества товара в корзине?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dmitryKovalskiy
программист средней руки
Можете на onSuccess обновлять статус корзины.

Примечание. У вас нет единого стиля именования методов. AddCart - добавить корзину(???)
RemoveFromCart - Удалить из корзины.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы