我有以下 Action 方法,目前模型类有两个属性,在数据库中设置为 Unique (名称和 IP )。因此,如果用户尝试添加/编辑记录,并且他提供了已经存在的 IP 或名称,则会引发以下异常DbUpdateException.
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(ServerToEdit serverToEdit)
{
try
{
if (ModelState.IsValid)
{
repository.InsertOrUpdateServer(serverToEdit.Server,serverToEdit.TechnologyIP);
repository.Save();
return RedirectToAction("Index");
}
else
{
return View(serverToEdit);
}
}
catch ()
{
ModelState.AddModelError(string.Empty, "Error occured. The Same IP/Name might already assinged.");
return View(serverToEdit);
}
catch (DbEntityValidationException)
{
ModelState.AddModelError(string.Empty, "Error occured. User might not be defiend inside Active Directory.");
return View(serverToEdit);
}
return null;
并且我正在显示 IP 或名称可能已经存在的一般消息,那么有没有办法确切地知道哪个字段引发了错误并向用户显示更具体的错误消息?