我的HTTP操作方法中有一些代码,还有一个模型状态,以确保一切都有效;当我放置模型状态时,我的代码不会执行并直接进入重定向
if (ModelState.IsValid)
{
db.Entry(profile).State = EntityState.Modified;
db.SaveChanges();
ViewBag.success = "Your changes have been saved";
return View(new article_detail() { profile = profile });
}
return RedirectToAction("edit");
是否有一种方法可以用来查明模型中的哪个字段导致 ModelState 无法通过?通常我这样做的方法是做一个断点然后查看每个字段以查看发生了什么,但我想知道是否有更有效的方式..任何建议都会很棒。
答案 0 :(得分:0)
在控制器操作的开头添加以下行并在其上激活断点:
var modelStateErrors = ModelState
.Where(x => x.Value.Errors.Count > 0)
.Select(x => new { x.Key, x.Value.Errors })
.ToArray();
调用控制器操作并触发断点时,按 F10 并检查modelStateErrors
变量的值。它可能会帮助您了解您忘记POST的哪个字段,以使您的模型有效。