我正在阅读一本书 Pro ASP.NET MVC3 Framework - Freeman Sandersan ,其中展示了如何在网上商店进行简单管理。 问题是,当我尝试保存一个产品的更改时,它不会保存。
修改视图:
@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”。 Temp消息说保存完成但产品名称仍然是“皮划艇”。
答案 0 :(得分:0)
解决。
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();
}