嗨,目前我正在为我的项目做一个购物车
我想问一下如何将ForEach中的值导入数据库。
例如,我的视图中有以下数据:
@foreach (Cart_Has_Services c in Model)
{
<div class="cart-row">
<div class="cart-items">@c.Cart_Service</div>
<div class="cart-items">@c.Additional_Notes</div>
<div class="cart-items">@c.Unit_Price</div>
<div class="cart-items">
<form asp-controller="Cart" asp-action="UpdateCart" formaction="post">
<input type="number" class="item-quantity-input" value="@c.Quantity" />
<input type="submit" class="btn btn-secondary" value="Update" />
</form>
</div>
<div class="cart-items">
<a asp-controller="Cart"
asp-action="DeleteItem"
asp-route-id="@c.Cart_Id"
onclick="return confirm('Delete Serivce @c.Cart_Service')">
Delete
</a>
</div>
</div>
}
至于现在,我想插入数据(购物车服务,附加说明和数量)到我的数据库(订单)。
In my controller:
public IActionResult Checkout(Cart_Has_Services cart)
{
List<Cart_Has_Services> carts = DBUtl.GetList<Cart_Has_Services>("SELECT * FROM Cart");
string sql = @"INSERT INTO [Order](Order_Name,Order_Description,Order_Quantity)
VALUES('{0}','{1}',{2})";
int ord = DBUtl.ExecSQL(sql, cart.Cart_Service, cart.Additional_Notes, cart.Quantity);
if (ord == 1)
{
TempData["Message"] = "Perofrmance Successfully Created";
TempData["MsgType"] = "success";
return RedirectToAction("Success");
}
else
{
ViewData["Message"] = DBUtl.DB_Message;
ViewData["MsgType"] = "danger";
return View("ShoppingCart");
}
}
我尝试了插入的方法,但它没有插入数据。
我该如何解决这个问题?
希望能得到一些指导。
谢谢
视图中的表单只提交了Quantity
,没有提交Cart_Service
和Additional_Notes
。要提交它们的值,您可以在表单中设置隐藏的输入。您还应该为模型绑定的输入设置name属性。
@foreach (Cart_Has_Services c in Model)
{
<div class="cart-row">
<div class="cart-items">@c.Cart_Service</div>
<div class="cart-items">@c.Additional_Notes</div>
<div class="cart-items">@c.Unit_Price</div>
<div class="cart-items">
<form asp-controller="Cart" asp-action="UpdateCart" formaction="post">
<input type="hidden" name="Cart_Service" value="@c.Cart_Service" />
<input type="hidden" name="Additional_Notes" value="@c.Additional_Notes" />
<input type="number" name="Quantity" class="item-quantity-input" value="@c.Quantity" />
<input type="submit" class="btn btn-secondary" value="Update" />
</form>
</div>
<div class="cart-items">
<a asp-controller="Cart"
asp-action="DeleteItem"
asp-route-id="@c.Cart_Id"
onclick="return confirm('Delete Serivce @c.Cart_Service')">
Delete
</a>
</div>
</div>
}