在ASP.NET Core中,编辑操作通常涉及从数据库中检索现有实体,然后将更新后的数据保存回数据库。如果编辑操作没有更新新信息,可能是由于以下几个常见原因:
asp-for
标签帮助正确地绑定字段,例如:
[HttpPost]
public IActionResult Edit(int id, MyEntity updatedEntity)
{
if (id != updatedEntity.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
// 从数据库中检索现有实体
var existingEntity = _context.MyEntities.Find(id);
if (existingEntity == null)
{
return NotFound();
}
// 更新实体属性
existingEntity.Property1 = updatedEntity.Property1;
existingEntity.Property2 = updatedEntity.Property2;
// 保存更改
_context.SaveChanges();
return RedirectToAction(nameof(Index));
}
return View(updatedEntity);
}
如果以上解决方法不起作用,可以进一步调试和检查代码,例如确保数据在控制器操作方法中正确传递,确保实体属性与数据库模型匹配等。