如果您在ASP.NET Core MVC中使用模型时遇到了值更改不被识别的问题,这可能是由于模型绑定器不会自动更改属性。可以通过显式设置模型状态来解决此问题。
以下是一个示例,其中在修改模型属性后显式设置模型状态:
public async Task Edit(int id, [Bind("Id,Name")] Student student)
{
if (id != student.Id)
{
return NotFound();
}
if (ModelState.IsValid)
{
_context.Update(student);
await _context.SaveChangesAsync();
// set model state as updated
_context.Entry(student).State = EntityState.Modified;
return RedirectToAction(nameof(Index));
}
return View(student);
}
在上述示例中,添加了以下代码行以将模型状态设置为已修改:
_context.Entry(student).State = EntityState.Modified;
这将确保更改后的值反映在模型状态中,并且正确地保存到数据库中。