Apress Pro Asp.net MVC框架3 - SportsStore编辑产品不工作?

MVC*_*bie 12 frameworks errata asp.net-mvc-3

G'day All,有没有人购买了Apress Pro Asp.net MVC Framework 3的ALPHA并创建了SportsStore?我不能为我的生活编辑产品并成功更新数据库?没有错误显示和单元测试都运行,但没有成功的'编辑',即我更改一些细节,点击保存,它报告成功 - 然后检查结果,没有发生任何事情?通过SportsStore工作时有没有其他人发现这个?任何建议将不胜感激.

干杯.

car*_*r_3 12

保存前需要更新EF对象的状态.

public void SaveProduct(Product product)
        {
            if (product.ProductID == 0)
            {
                context.Products.Add(product);
            }
            else
            {
                context.Entry(product).State = System.Data.EntityState.Modified;
            }


            int result = context.SaveChanges();

        }
Run Code Online (Sandbox Code Playgroud)


小智 -1

尝试这个

 public ActionResult Edit(Product product)
    {
        if (ModelState.IsValid)
        {
            Product p = repository.Products.FirstOrDefault(x => x.ProductID == product.ProductID);
            if (p != null)
            {
                p.ProductID = product.ProductID;
                p.Price = product.Price;
                p.Category = product.Category;
                p.Description = product.Description;
                p.Name = product.Name;
            }
            else
                p = product;
            repository.SaveProduct(p);
            TempData["message"] = string.Format("{0} has been saved", product.Name);
            return RedirectToAction("Index");
        }
        else 
        {
            return View(product);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我是 mvc 3 的初学者,但我认为模型引用(产品参数)是一个未绑定到 EF Context 的 Product 对象