【问题标题】:MVC EditorForModel FreemanMVC EditorForModel Freeman
【发布时间】:2013-03-06 18:02:44
【问题描述】:

我正在阅读一本书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”。临时消息显示保存已完成,但产品名称仍为“Kayak”。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 editorformodel


    【解决方案1】:

    解决了。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-12
      • 1970-01-01
      • 2013-06-07
      • 1970-01-01
      • 2013-08-07
      • 1970-01-01
      • 1970-01-01
      • 2018-04-24
      相关资源
      最近更新 更多