将视图中的 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_ServiceAdditional_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>
}