在视图中插入ForEach值到数据库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>
    }

至于现在,我想插入数据(购物车服务,附加说明和数量)到我的数据库(订单)。

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_ServiceAdditional_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>
}

最新更新