ModelState.AddModelError未显示任何消息

时间:2013-03-14 08:23:09

标签: asp.net-mvc telerik-grid telerik-mvc

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

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

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

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

3 个答案:

答案 0 :(得分:10)

确保视图中的相应ValidationMessage使用相同的密钥:

@Html.ValidationMessage("PROGRAM_ID")

答案 1 :(得分:7)

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

ModelState.AddModelError(string.Empty, "Access for this program already exists.");

答案 2 :(得分:0)

遵循2个步骤:(达林的解决方案起作用)

  1. 在控制器中添加:ModelState.AddModelError("PROGRAM_ID", "Error Msg");
  2. 在视图中添加:@Html.ValidationMessage("PROGRAM_ID")