将视图中的 ForEach 值插入数据库 MVC
Insert ForEach Value in View into the Database MVC
您好,目前我正在为我的项目做一个购物车
请问如何将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>
}
至于现在,我想将数据(购物车服务、附加说明和数量)插入我的数据库(订单)。
在我的控制器中:
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
。
要提交它们的值,您可以在表单中设置隐藏输入。您还应该为模型绑定的输入设置名称属性。
@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>
}
您好,目前我正在为我的项目做一个购物车
请问如何将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>
}
至于现在,我想将数据(购物车服务、附加说明和数量)插入我的数据库(订单)。
在我的控制器中:
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
。
要提交它们的值,您可以在表单中设置隐藏输入。您还应该为模型绑定的输入设置名称属性。
@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>
}