gpt4 book ai didi

c# - 在 ASP.NET MVC 中编辑订单详细信息

转载 作者:行者123 更新时间:2023-11-30 21:55:37 25 4
gpt4 key购买 nike

在 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);
}

问题是我需要编辑订单详细信息(1 个订单,很多详细信息),因此需要基于两个 ID(订单 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);
}

编辑:这是 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.OrderIdOrderDetail.MovieId 属性都存在于表单中作为隐藏字段。

这样,当您将其发回服务器时,您可以跟踪MovieOrder 这个OrderDetail 是什么,在行动。

关于c# - 在 ASP.NET MVC 中编辑订单详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32142809/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com