在ASP中编辑订单详细信息.净MVC

本文关键字:详细信息 MVC ASP 编辑 | 更新日期: 2023-09-27 18:09:11

在ASP中编辑记录的标准方法。. NET MVC如下:

//
// GET: /Movies/Edit/5
public ActionResult Edit(int id = 0)
{
    Movie movie = db.Movies.Find(id);
    if (movie == null)
    {
        return HttpNotFound();
    }
    return View(movie);
}
//
// POST: /Movies/Edit/5
[HttpPost]
public ActionResult Edit(Movie movie)
{
    if (ModelState.IsValid)
    {
        db.Entry(movie).State = EntityState.Modified;
        db.SaveChanges();
        return RedirectToAction("Index");
    }
    return View(movie);
}

问题是我需要编辑订单详细信息(一个订单,许多详细信息),因此基于两个id(订单和产品id)。它不起作用(我无法获得OrderDetail项作为操作参数)。我该如何解决这个问题?

谢谢。

//
// GET: /Orders/EditDetails
public ActionResult EditDetails(int id, string productID)
{
   OrderDetail od = GetOrderDetail(id, productID);
   return View(od);
}
//
// POST: /Orders/EditDetails
[HttpPost]
public ActionResult EditDetails(OrderDetail od)
{
   if (ModelState.IsValid)
   {
      context.Entry(od).State = EntityState.Modified;
      context.SaveChanges();
      return RedirectToAction("Index");
   }
   return View(od);
}

EDIT:这是Shimmy请求的代码:

@using (Html.BeginForm("EditDetails", "Orders", FormMethod.Post))
{
   @Html.LabelFor(m => m.quantity)
   @Html.TextBoxFor(m => m.quantity)
   @Html.LabelFor(m => m.productID)
   @Html.DropDownListFor(m => m.productID, new SelectList((IEnumerable)ViewBag.productList, "productID", "fullProductName"))
   @Html.HiddenFor(model => model.orderID)
}

在ASP中编辑订单详细信息.净MVC

确保OrderDetail.Id本身以及OrderDetail.OrderIdOrderDetail.MovieId属性都作为隐藏字段出现在表单中

通过这种方式,当您将其发布回服务器时,您可以跟踪MovieOrder这个OrderDetail是什么,在行动中