public static string[] GetErrors(this ModelStateDictionary modelState, string prefix) { if (!modelState.IsValid) { List <string> errors = new List <string>(); IEnumerable <KeyValuePair <string, ModelState> > states = prefix.IsNullOrEmpty() ? modelState.AsEnumerable() : modelState.Where(x => x.Key.StartsWith(prefix + ".")); foreach (var modelStateKvp in states) { foreach (var modelError in modelStateKvp.Value.Errors) { errors.Add(modelError.ErrorMessage); } } return(errors.ToArray()); } return(null); }