我正在使用MVC创建一个食品店,用户可以在其中添加菜单项。但是我遇到了“添加到购物车”的问题。特征。
这是我从数据库中获取项目的课程
public class Item
{
private RestaurantA pr = new RestaurantA();
private int quantity;
public Item()
{ }
public Item(RestaurantA product, int quantity)
{
this.pr = product;
this.Quantity = quantity;
}
public int Quantity { get => quantity; set => quantity = value; }
public RestaurantA Pr { get => pr; set => pr = value; }
}
这是“添加到购物车”的方法。在订单控制器
public ActionResult OrderNow()
{
if (Session["cart"] == null)
{
List<Item> cart = new List<Item>();
cart.Add(new Item(db.RestaurantA.Find(id), 1));
Session["cart"] = cart;
}
else
{
List<Item> cart = (List<Item>)Session["cart"];
cart.Add(new Item(db.RestaurantA.Find(id), 1));
Session["cart"] = cart;
}
return View("Cart");
}
另外,我在&#39;(id)&#39;下面得到了一条小小的蠕动线。错误&#34;名称&#39; id&#39;在当前上下文中不存在&#34;。我不知道为什么会出现这个错误,因为&#39; id&#39;在模型中,问题在其他类中不存在。
public class RestaurantA
{
public int ID { get; set; }
[Display(Name = "Name")]
public string Name { get; set; }
[Display(Name = "Item Type")]
public string ItemType { get; set; }
[Display(Name = "Price")]
[DataType(DataType.Currency)]
public decimal Price { get; set; }
}
购物车视图有一个列出名称和价格的表格。
<table class=" table table-bordered table-hover">
<tr>
<th>ID</th>
<th>Name</th>
<th>Price</th>
<th>Quantity</th>
<th>Total</th>
</tr>
@foreach (Item item in (List<Item>)Session["cart"])
{
<tr>
<td>@item.Pr.ID</td>
<td>@item.Pr.Name</td>
<td>@item.Pr.Price</td>
<td>@item.Quantity</td>
<td>@(item.Pr.Price * item.Quantity)</td>
</tr>
}
</table>
每个菜单项都有一个链接,可以添加到旁边的购物车
@foreach (var item in Model) { <td class=" btn btn-default">
@Html.ActionLink("Add to Cart", "OrderNow", "Order", new { id = item.ID}, null)
</td> }
我遇到的问题是,当我点击“添加到购物车”时,它不会执行此操作并且购物车保持为空。我不知道为什么会这样,如果有人能帮助我,我会很感激。非常感谢你。