【发布时间】:2015-12-18 22:38:36
【问题描述】:
我有一个项目要使用数据库在用户之间建立网上商店(发布产品、购买等)。在这个项目中,我有一个名为“ShoppingCart”的视图:
@model IEnumerable<MyFirstProject.Models.Product>
@{
ViewBag.Title = "ShoppingCart";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>Your Shopping Cart</h2>
@if (Model == null)
{
<div style="float:left">Your cart is empty.</div>
<div>
Total payment: 0
</div>
}
else
{
decimal tPrice = 0;
<div>
<table style="float:left">
@foreach (var product in Model)
{
tPrice = tPrice + product.Price;
{ Html.RenderPartial("ProductLine", product);}
}
</table>
</div>
<div>
Total payment: @tPrice
</div>
}
它接收用户决定购买的产品列表并显示它们(不是重要部分)。我需要添加一个按钮,它将列表发送到“ShoppingController”中的操作结果:
[HttpPost]
public ActionResult ShoppingCart(List<Product> bought)
{
if (ModelState.IsValid)
{
foreach (var listP in bought.ToList())
{
foreach (var databaseP in db.Products.ToList())
{
if (listP.ProductID == databaseP.ProductID)
{
databaseP.State = 1;
db.SaveChanges();
break;
}
}
}
return RedirectToAction("Index");
}
else
{
return View(bought);
}
}
“状态”表示产品是否已购买(0=未购买,1=已购买),db为数据库
【问题讨论】:
-
你没有。 (您需要为您查看的每个产品的每个属性包含一个表单控件)。如果这是一个确认页面,那么您只需发布一个 ID 值,然后检索用户已经选择的产品集合并从您之前存储它的存储库中检索它(我假设您使用
Session?)
标签: c# asp.net-mvc view actionresult