我正在使用带有Entity Framework的asp.net MVC开展项目。 我被要求将创建页面和编辑页面组合在一起。换句话说,如果没有记录,则创建它,否则,编辑它。但它带来了一个问题:
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include="ID,Title,ReleaseDate,Genre,Price")] Movie movie)
{
if (ModelState.IsValid)
{
if(movie.ID ==0)
{
db.Movies.Add(movie);
}
else
{
db.Entry(movie).State = EntityState.Modified;
}
db.SaveChanges();
}
return View(movie);
}
从上面的代码中,您可以看到我在DBcontext中检查属性“id”,以了解它是新记录还是现有记录。 但在测试过程中,我发现如果我创建一个没有关闭网页的记录,并更改了一些值,再次按下浏览器中的“保存”按钮,将创建一条新记录,而不是修改刚创建的记录。
我已经跟踪了整个工作流程并发现:
有没有人可以提供帮助?