Как добавить ценности в корзину - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть Добавить в корзину Частичное представление, которое мне нужно, чтобы добавить выбранные товары Цены, чтобы рассчитать общую стоимость.Что я хочу сделать, так это, когда я нажимаю на добавить в корзину, частичное представление AddtoCart само обновляется новыми ценами на выбранные товары.

Добавить в корзину Частичное представление

@model OnlineShopping.MyViewModel

<div class="alert alert-primary" role="alert">
Added to Cart<br />
Total: 0 @Model.SumVM.ToString()  

У меня есть таблица продуктов, которая содержит сведения о продукте (идентификатор, цена, детали, изображение)

Частичное представление продукта

    @model OnlineShopping.MyViewModel

    foreach (Product item in Model.ProductsV)
    {

            <tr>
                <td scope="row"><img src="@Url.Content(@item.ProductImage)" 
             width="150" height="200" /></td>
                <td>
                    @item.ProductName
                    <br />Price : @item.ProductPrice $<br /> 
          @item.ProductDetails
                 </td>
                <td><button  type="button" class="btn-outline-primary">Add 
         to cart </button></td>
            </tr>
    }

Метод AddtoCart

    public ActionResult AddtoCart(int sum)
    {
        var viewModel = new MyViewModel
        {
            SumVM = SumVM + sum
        };

        return View(viewModel);

Я попытался изменить кнопку добавления в корзину примерно так:

  <button  type="submit" value="@item.ProductPrice" class="btn-outline- 
  success" name="sum"  onclick="location.href='@Url.Action("AddtoCart", "Home")'" >Add 
   To cart </button>

, но она не работает из-за пустой ссылки на переменную sum.

1 Ответ

0 голосов
/ 03 декабря 2018

Правильно ли я думаю, что вы хотите «добавить товар в корзину» и отобразить текущую общую стоимость товаров в корзине?

Ваша кнопка «Добавить в корзину» в данный момент отправляет страницу на контроллер (сервер), но не имеет «значения» для передачи как sum.

Я также принимаюна борту тот факт, что у вас нет «корзины» в вашем коде и вы видите только промежуточный итог.Как вы храните , что находится в корзине, это ваш звонок по этому поводу ... Мое решение основано на информации, которую вы предоставили.

Я хотел бы получить следующее (в качестве основногопример) flow:

  • товары, отображаемые на странице с кнопкой «добавить в корзину» на каждом
  • нажатие кнопки «добавить в корзину» отправляет цену товара контроллеру
  • [HttpPost] для действия контроллера принимает цену продукта и добавляет цену к текущему итогу в вашей модели
  • возвращает представление с новым итогом.

I 'м при условии, что «продукты» обернуты в тег <form method='post' ...>.

@model OnlineShopping.MyViewModel
foreach (Product item in Model.ProductsV)
{
        <tr>
            <td scope="row"><img src="@Url.Content(@item.ProductImage)" 
         width="150" height="200" /></td>
            <td>
                @item.ProductName
                <br />Price : @item.ProductPrice $<br /> 
      @item.ProductDetails
             </td>
            <td><button value="150" name="sum"  type="button" class="btn-outline-primary">Add 
     to cart </button></td>
        </tr>
}

(обратите внимание на добавленные атрибуты value и name)

Контроллер:

[HttpPost]
public ActionResult AddtoCart(int sum)
{
    var viewModel = new MyViewModel
    {
        SumVM = SumVM + sum
    };

    return View(viewModel);
}

Для настоящего решения для корзины покупок нужно гораздо больше, но это должно решить вашу непосредственную проблему.Вам понадобится корзина для хранения идентификатора товара добавленных предметов, потенциально для начала нужно иметь> 1 количество предметов.

...