C#MVC将记录添加到带有表单和参数的表中

C#MVC将记录添加到带有表单和参数的表中,c#,model-view-controller,C#,Model View Controller,我在添加到数据库记录时遇到问题。 我试图做的是添加一个带有从表单发送的参数的记录。我从给出数量的表中抓取一个项目,然后他们将其添加到订单表中 我正在将其添加到OrderDetails表中,因此需要orderId。我从Url中获取。 下面是我的代码,它不工作。它可能会被简化,但我不确定在哪里修改它 表格第页: @{ var OrderId = Request.Url.Segments[3];} <td> <form method=&q

我在添加到数据库记录时遇到问题。 我试图做的是添加一个带有从表单发送的参数的记录。我从给出数量的表中抓取一个项目,然后他们将其添加到订单表中

我正在将其添加到OrderDetails表中,因此需要orderId。我从Url中获取。 下面是我的代码,它不工作。它可能会被简化,但我不确定在哪里修改它

表格第页:

   @{ var OrderId = Request.Url.Segments[3];}
        <td>
            <form method="GET" action="~/OrderManager/AddToOrder/@OrderId" _lpchecked="1">
                <div class="row ">
                    <div class="input-group mb-3 col-xs-6 col-md-6">
                        <div class="input-group-prepend">
                            <span class="input-group-text" id="inputGroup-sizing-default">Qty</span>
                        </div>
                        <input style="max-width:75px;" aria-label="Qty" aria-describedby="inputGroup-sizing-default" type="number" class="form-control" id="quantity" min="1" name="quantity">
                    </div>

                    <div class="col-xs-6 col-md-6">
                        <button class="btn btn-primary btn-sm" type="submit" id="submit" onchange="usercheck">Add To Order</button>
                    </div>
                </div>
            </form>
        </td>
谢谢你的帮助

修订代码更新:

我改变了一些事情。我似乎有我现在需要的,它说它提交了,但它没有保存到表中

修订表格:

@{ var OrderId = Request.Url.Segments[3];}
        <td>
            <form method="POST" action="~/OrdersManager/Add/" _lpchecked="1">
                <div class="row ">
                    <div class="input-group mb-3 col-xs-6 col-md-6">
                        <div class="input-group-prepend">
                            <span class="input-group-text" id="inputGroup-sizing-default">Qty</span>
                        </div>
                        <input data-val="true" id="OrderId" name="OrderId" type="hidden" value="@OrderId" />
                        <input data-val="true" id="id" name="id" type="hidden" value="@item.BillingExtrasId" />
                        <input style="max-width:75px;" aria-label="Qty" aria-describedby="inputGroup-sizing-default" type="number" class="form-control" id="quantity" min="1" name="quantity">
                    </div>

                    <div class="col-xs-6 col-md-6">
                        <button class="btn btn-primary btn-sm" type="submit" id="submit" onchange="usercheck">Add To Order</button>
                    </div>
                </div>
            </form>
        </td>

就在
try
块内的第一个
return
语句之前


(您发现了错误并在评论中提到。我只是确认一下并将其转化为答案。)

请在问题中添加更多细节,例如您面临的确切问题是什么。当调用
AddToOrder
时,数量和id的值是多少?我想我知道最新的问题。我忘了将保存添加到控制器
@{ var OrderId = Request.Url.Segments[3];}
        <td>
            <form method="POST" action="~/OrdersManager/Add/" _lpchecked="1">
                <div class="row ">
                    <div class="input-group mb-3 col-xs-6 col-md-6">
                        <div class="input-group-prepend">
                            <span class="input-group-text" id="inputGroup-sizing-default">Qty</span>
                        </div>
                        <input data-val="true" id="OrderId" name="OrderId" type="hidden" value="@OrderId" />
                        <input data-val="true" id="id" name="id" type="hidden" value="@item.BillingExtrasId" />
                        <input style="max-width:75px;" aria-label="Qty" aria-describedby="inputGroup-sizing-default" type="number" class="form-control" id="quantity" min="1" name="quantity">
                    </div>

                    <div class="col-xs-6 col-md-6">
                        <button class="btn btn-primary btn-sm" type="submit" id="submit" onchange="usercheck">Add To Order</button>
                    </div>
                </div>
            </form>
        </td>
        [HttpPost]
    public ActionResult Add(int OrderId, Guid id, int quantity)
    {
        System.Text.StringBuilder sb = new System.Text.StringBuilder();
        try
        {
            GeneralEntities ExtrasDb = new GeneralEntities(); 
            // Retrieve the album from the database
            var addedExtra = ExtrasDb.Extras
                .Single(ext => ext.BillingExtrasId == id);

            var extra = new OrderDetail 
            {
                OrderId = OrderId,
                Extras = addedExtra.BillingExtrasId,
                UnitPrice = addedExtra.Price,
                Quantity = quantity,
                CreatedDate = DateTime.Now
            };

            ExtrasDb.OrderDetails.Add(extra);

            sb.Append("Sumitted");
            return Content(sb.ToString());
        }
        catch (Exception ex)
        {
            sb.Append("Error :" + ex.Message);
        }

        return Content(sb.ToString());

    }
ExtrasDb.SaveChanges();