我有一个添加到购物车的局部视图,我需要添加选定的项目价格以计算总价。 我想做的是,当我单击添加到购物车时,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”变量的空引用而无法使用。
答案 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>
}
(请注意添加的value
和name
属性)
控制器:
[HttpPost]
public ActionResult AddtoCart(int sum)
{
var viewModel = new MyViewModel
{
SumVM = SumVM + sum
};
return View(viewModel);
}
真正的购物车解决方案还有很多需要,但这应该可以解决您的直接问题。您将需要购物车来存储添加的商品的产品ID,一开始可能要处理超过1种商品。