我的一个MVC页面中有一个强类型的ajax调用(POST)。我不想尝试为此进行客户端验证,并且不会在客户端显示摘要,但是,我想在模型上抛出一些数据注释并在控制器上进行验证;如果验证失败,我想将验证摘要中的内容作为JSON属性发送回来,以便我可以在对话框中将其显示为错误消息。
如何在控制器中为JsonResponse提供验证摘要的文本?
答案 0 :(得分:8)
如果您尝试获取错误,只需使用ModelState.Errors
从控制器获取所有错误。从那里你可以按照你想要的方式制作JSON响应:
var response = new
{
isValid = ModelState.IsValid,
errors = ModelState
.SelectMany(ms => ms.Value.Errors)
.Select(ms => ms.ErrorMessage)
};
return Json(response);