我的控制器中有这个功能。
[HttpPost]
public ActionResult Edit(EmployeesViewModel viewModel)
{
Employee employee = GetEmployee(viewModel.EmployeeId);
TryUpdateModel(employee);
if (ModelState.IsValid)
{
SaveEmployee(employee);
TempData["message"] = "Employee has been saved.";
return RedirectToAction("Details", new { id = employee.EmployeeID });
}
return View(viewModel); // validation error, so redisplay same view
}
一直失败,ModelState.IsValid
不断返回 false 并重新显示视图。但我不知道错误是什么。
有没有办法获取错误并将其重新显示给用户?
Try this
if (ModelState.IsValid)
{
//go on as normal
}
else
{
var errors = ModelState.Select(x => x.Value.Errors)
.Where(y=>y.Count>0)
.ToList();
}
errors将是所有错误的列表。
如果你想向用户显示错误,你所要做的就是将模型返回到视图,如果你还没有删除 Razor@Html.ValidationFor()
表达式,它就会显示出来。
if (ModelState.IsValid)
{
//go on as normal
}
else
{
return View(model);
}
该视图将在每个字段旁边和/或 ValidationSummary(如果存在)中显示任何验证错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)