我正在使用Telerik MVC Grid。在我的表格中,我为一个字段定义了唯一键。在控制器中,我使用try...catch捕获DbUpdateException中的错误。
在catch块中,我想处理错误并在视图中显示错误消息。因此,我使用以下代码行:
ModelState.AddModelError("PROGRAM_ID", "Access for this program already exists.");
return View();
但是这并没有显示错误消息。有任何想法为什么?
我正在使用Telerik MVC Grid。在我的表格中,我为一个字段定义了唯一键。在控制器中,我使用try...catch捕获DbUpdateException中的错误。
在catch块中,我想处理错误并在视图中显示错误消息。因此,我使用以下代码行:
ModelState.AddModelError("PROGRAM_ID", "Access for this program already exists.");
return View();
但是这并没有显示错误消息。有任何想法为什么?
ValidationSummary只会显示键值为string.empty的ModelErrors。如果要在您的验证摘要中显示使用ModelStateException添加的错误,请更改您的代码:
ModelState.AddModelError(string.Empty, "Access for this program already exists.");
请确保您的视图中有一个相应的 ValidationMessage
,并且与相同的键匹配:
@Html.ValidationMessage("PROGRAM_ID")
ModelState.AddModelError("SomeCollection[2].PROGRAM_ID", "Access for this program already exists.");
。当然,所有这些都取决于你的模型。 - Darin Dimitrov跟随以下两个步骤:(Darin的解决方案有效)
ModelState.AddModelError("PROGRAM_ID", "错误消息");
@Html.ValidationMessage("PROGRAM_ID")