У меня есть проект, чтобы сделать интернет-магазин между пользователями (отправить товар, купить и т. Д.) С помощью базы данных. В этом проекте у меня есть представление под названием «ShoppingCart»:Вызов httppost actionresult изнутри с помощью кнопки
@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 - это база данных
У вас нет. (вам нужно будет включить элемент управления формой для каждого свойства каждого продукта, который вы видите). Если это страница подтверждения, вы просто публикуете значение идентификатора, а затем извлекаете коллекцию продуктов, которые пользователь уже выбрал, и извлеките их из ранее сохраненного хранилища (предположим, вы использовали 'Session'?). –