请参阅控制器中的验证摘要

Jer*_*acs 5 validation jquery asp.net-mvc-3

我的一个MVC页面中有一个强类型的ajax调用(POST).我不想尝试为此进行客户端验证,并且不会在客户端显示摘要,但是,我想在模型上抛出一些数据注释并在控制器上进行验证; 如果验证失败,我想将验证摘要中的内容作为JSON属性发回,这样我就可以在对话框中将其显示为错误消息.

如何在控制器中为JsonResponse提供验证摘要的文本?

vcs*_*nes 8

如果您尝试获取错误,则只需使用ModelState.Errors从控制器获取所有错误.从那里你可以按照你想要的方式制作JSON响应:

var response = new
                    {
                        isValid = ModelState.IsValid,
                        errors = ModelState
                        .SelectMany(ms => ms.Value.Errors)
                        .Select(ms => ms.ErrorMessage)
                    };
return Json(response);
Run Code Online (Sandbox Code Playgroud)