我正在手动验证并将错误添加到我的模型中,如下所示:
var validationResult = model.Validate(new ValidationContext(model, null, null));
foreach (var error in validationResult)
{
foreach (var memberName in error.MemberNames)
{
ModelState.AddModelError(memberName, error.ErrorMessage);
}
}
if (!ModelState.IsValid)
{
}
如果模型无效,我想返回包含错误消息的JSON数组。那让我有点沮丧。
答案 0 :(得分:4)
if (!ModelState.IsValid)
{
return Json(
ModelState
.Where(x => x.Value.Errors.Count > 0)
.Select(x => new
{
Key = x.Key,
Errors = x.Value.Errors.Select(e => e.ErrorMessage)
}
),
JsonRequestBehavior.AllowGet
);
}
或者如果您只想要一组错误消息:
if (!ModelState.IsValid)
{
return Json(
ModelState
.Where(x => x.Value.Errors.Count > 0)
.SelectMany(x => x.Value.Errors.Select(e => e.ErrorMessage))
.Distinct(),
JsonRequestBehavior.AllowGet
);
}