【问题标题】:See the Validation Summary in the controller查看控制器中的验证摘要
【发布时间】:2011-10-17 23:50:53
【问题描述】:
我的一个 MVC 页面中有一个强类型的 ajax 调用 (POST)。我不想为此尝试连接客户端验证,并且不会在客户端显示摘要,但是,我想在模型上抛出一些数据注释并在控制器上验证;如果验证失败,我想将验证摘要中的内容作为 JSON 属性发回,以便在对话框中将其显示为错误消息。
如何在我的控制器中向 JsonResponse 提供验证摘要的文本?
【问题讨论】:
标签:
asp.net-mvc-3
validation
jquery
【解决方案1】:
如果您尝试获取错误,您只需使用ModelState.Errors 从控制器获取所有错误。您可以从那里以任何您喜欢的方式制作 JSON 响应:
var response = new
{
isValid = ModelState.IsValid,
errors = ModelState
.SelectMany(ms => ms.Value.Errors)
.Select(ms => ms.ErrorMessage)
};
return Json(response);