我正在尝试创建购物车但是当尝试将Id作为参数传递时,这就是发生的事情
http://localhost:15359/RealCartController/Order/FinalProject.Models.Clothes
HTTP错误404.0 - 未找到 您要查找的资源已被删除,名称已更改或暂时不可用。
这是在RealCartController
中 public ActionResult Order(int id)
{
if(Session["cart"] == null)
{
List<Item> cloth = new List<Item>();
cloth.Add(new Item(de.Clothes.Find(id),1));
Session["cart"] = cloth;
}
else
{
List<Item> cart = (List<Item>)Session["cart"];
int index = isExisting(id);
if (index == -1)
cart.Add(new Item(de.Clothes.Find(id), 1));
else
cart[index].Amount++;
Session["cart"] = cart;
}
return View();
}
这是在View中调用函数
@if (Model != null)
{
foreach (Clothes Id in Model)
{
if (Id.Amount > 0)
{
<div id="container">
<div id="row">
<img src="~/Content/img/@Html.DisplayFor(model => Id.ImagePath)" style="height:200px;width:200px;" />
<br />
<br />
@Html.ActionLink("Add To Cart", "Order", "RealCartController", new { id = Id }, null);
</div>
</div>
}
}
}
这是功能视图
@foreach (Item item in (List<Item>)Session["cart"])
{
<tr>
<td>@item.Cl.Id</td>
<td>@item.Cl.Price</td>
<td>@item.Cl.Amount</td>
<td>@item.Cl.Price * item.Cl.Amount</td>
</tr>
}
答案 0 :(得分:0)
此行Id
中的变量foreach (Clothes Id in Model)
是一个对象而不是数字。当您尝试使用ActionLink
函数将对象作为参数发送时,它将只发送对象类名。因此,api调用无法解析参数。
您可以看到在网址中发送了一个类名。
http://localhost:15359/RealCartController/Order/FinalProject.Models.Clothes
FinalProject.Models.Clothes
部分应该是订单ID号。
答案 1 :(得分:0)
它应该看起来像这样
@Html.ActionLink("Add To Cart", "Order", "RealCartController", new { id =
Id.ProductId }, null);
ProductId来自您的班级/型号,是项目的主键