我正在读一本书Pro ASP.NET MVC3 Freeman,书中展示了如何制作简单的管理信息网络商店。问题是,当我试图保存一个产品的更改时,它并没有保存。
编辑视图:
@using (Html.BeginForm()) {
@Html.EditorForModel()
<input type="submit" value="Save" />}编辑方法:
[HttpPost]
public ActionResult Edit(Product product)
{
if (ModelState.IsValid)
{
repository.SaveProduct(product);
TempData["message"] = string.Format("{0} has been saved", product.Name);
return RedirectToAction("Index");
}
// there is something wrong with the data values
return View(product);
}节省产品方法:
private EFDbContext context=new EFDbContext();
public void SaveProduct(Product product)
{
if (product.ProductID == 0)
{
context.Products.Add(product);
}
context.SaveChanges();
}编辑结果:我将产品的名称更改为"Kayakkkkkkkkkk“。临时消息说,保存已完成,但产品的名称仍然是"Kayak“。

发布于 2013-03-06 18:14:02
解决了。
public void SaveProduct(Product product)
{
if (product.ProductID == 0)
{
context.Products.Add(product);
}
else
{
context.Products.Attach(product);
context.Entry(product).State = EntityState.Modified;
}
context.SaveChanges();
}https://stackoverflow.com/questions/15254677
复制相似问题