我正在使用 Telerik mvc 网格。在我的表中,我为字段定义了唯一键。在控制器中,我在 DbUpdateException 中使用 try ... catch 来捕获错误。
在 catch 块中,我想处理错误并在视图中显示错误消息。所以使用以下行,
ModelState.AddModelError("PROGRAM_ID", "Access for this program already exists.");
return View();
但这没有显示错误消息。知道为什么吗?
我正在使用 Telerik mvc 网格。在我的表中,我为字段定义了唯一键。在控制器中,我在 DbUpdateException 中使用 try ... catch 来捕获错误。
在 catch 块中,我想处理错误并在视图中显示错误消息。所以使用以下行,
ModelState.AddModelError("PROGRAM_ID", "Access for this program already exists.");
return View();
但这没有显示错误消息。知道为什么吗?
确保ValidationMessage您的视图中有一个具有相同键的对应项:
@Html.ValidationMessage("PROGRAM_ID")
ValidationSummary 将仅显示 ModelErrors for string.empty 作为键。要在验证摘要中显示使用 ModelState.AddModelError 添加的错误,请将代码更改为:
ModelState.AddModelError(string.Empty, "Access for this program already exists.");
遵循2个步骤:(达林的解决方案有效)
ModelState.AddModelError("PROGRAM_ID", "Error Msg");@Html.ValidationMessage("PROGRAM_ID")