在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)
}
确保OrderDetail.Id
本身以及OrderDetail.OrderId
和OrderDetail.MovieId
属性都作为隐藏字段出现在表单中
通过这种方式,当您将其发布回服务器时,您可以跟踪Movie
和Order
这个OrderDetail
是什么,在行动中