10

我正在使用 Telerik mvc 网格。在我的表中,我为字段定义了唯一键。在控制器中,我在 DbUpdateException 中使用 try ... catch 来捕获错误。

在 catch 块中,我想处理错误并在视图中显示错误消息。所以使用以下行,

ModelState.AddModelError("PROGRAM_ID", "Access for this program already exists.");
return View();

但这没有显示错误消息。知道为什么吗?

4

3 回答 3

12

确保ValidationMessage您的视图中有一个具有相同键的对应项:

@Html.ValidationMessage("PROGRAM_ID")
于 2013-03-14T08:25:59.043 回答
12

ValidationSummary 将仅显示 ModelErrors for string.empty 作为键。要在验证摘要中显示使用 ModelState.AddModelError 添加的错误,请将代码更改为:

ModelState.AddModelError(string.Empty, "Access for this program already exists.");
于 2013-06-26T00:50:38.323 回答
0

遵循2个步骤:(达林的解决方案有效)

  1. 在控制器中添加: ModelState.AddModelError("PROGRAM_ID", "Error Msg");
  2. 在视图中添加: @Html.ValidationMessage("PROGRAM_ID")
于 2020-01-28T01:12:20.873 回答