如何将值添加到购物车

时间:2018-12-03 12:04:47

标签: c# asp.net-mvc model-view-controller asp.net-ajax

我有一个添加到购物车的局部视图,我需要添加选定的项目价格以计算总价。 我想做的是,当我单击添加到购物车时,AddtoCart部分视图会使用新选择的商品价格自行更新。

添加到购物车的部分视图

PrimaryInteropAssemblyName

我有一个包含产品详细信息(id,价格,详细信息,图片)的产品表

产品局部视图

"2.1"

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>
    }

但是由于“ sum”变量的空引用而无法使用。

1 个答案:

答案 0 :(得分:0)

我是否正确地认为您要“向购物车中添加产品”并显示购物车中商品的当前总费用?

您的“添加到购物车按钮”当前将页面提交给控制器(服务器),但没有“值”作为sum传递。

我还接受了一个事实,即您的代码中没有“购物车”,只显示了运行总数。关于如何存储 在购物车中的信息是您的要求……我的解决方案基于您提供的信息。

我将具有以下(作为基本示例)流程:

  • 页面上显示的产品带有每个按钮上的“添加到购物车”按钮
  • 点击“添加到购物车”会将产品价格发送给控制器
  • [HttpPost](针对控制器操作)接受产品价格,并将价格添加到模型中的当前总计中
  • 使用新的总计返回视图。

我假设“产品”包装在<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>
}

(请注意添加的valuename属性)

控制器:

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

    return View(viewModel);
}

真正的购物车解决方案还有很多需要,但这应该可以解决您的直接问题。您将需要购物车来存储添加的商品的产品ID,一开始可能要处理超过1种商品。