static void AddModelErrors(ModelStateDictionary modelState, ErrCollection errors) { string message = errors.ToString(); if (String.IsNullOrEmpty(message)) { message = null; } if (message != null) { modelState.AddModelError("", message); } foreach (var item in errors) { IList <string> memberNames = item.MemberNames.ToList(); string itemMessage = item.ErrorMessage; if (memberNames.Count > 0) { for (int i = 0; i < memberNames.Count; i++) { modelState.AddModelError(memberNames[i] ?? "", itemMessage); } } else { if (message != null && itemMessage == message) { continue; } modelState.AddModelError("", itemMessage); } } }
/// <summary> /// Adds the errors from the <paramref name="result"/> parameter to <paramref name="modelState"/>. /// </summary> /// <param name="modelState">The <see cref="ModelStateDictionary"/> instance.</param> /// <param name="result">The <see cref="Result"/> that contains error information.</param> public static void AddModelErrors(this ModelStateDictionary modelState, Result result) { if (modelState == null) { throw new ArgumentNullException("modelState"); } if (result == null) { throw new ArgumentNullException("result"); } object value = result.Value; if (value != null) { ErrCollection errors = value as ErrCollection; if (errors == null) { ErrorBuilder builder = value as ErrorBuilder; if (builder != null) { errors = (ErrCollection)builder.GetErrors(); } } if (errors != null) { AddModelErrors(modelState, errors); } else { modelState.AddModelError("", value.ToString()); } } }