Проблема в том, что я не могу получить правильный ответ JSON для анализа из IEnumerable, что очень странно по той причине, что я сделал это много раз с помощью автоматического ответа JSON от контроллера MVC.Невозможно получить JSON из IEnumerable в ASP.NET MVC
Так вот класс:
public class Error
{
public Error(string key, string message)
{
Key = key;
Message = message;
}
private string Key { get; set; }
private string Message { get; set; }
}
Расширение:
public static class ModelStateHelper
{
public static IEnumerable<Error> ErrorsDictionary(this ModelStateDictionary modelState)
{
if (modelState.IsValid) return null;
var result = from ms in modelState
where ms.Value.Errors.Any()
let fieldKey = ms.Key
let errors = ms.Value.Errors
from error in errors
select new Error(fieldKey, error.ErrorMessage);
return result;
}
}
И, наконец, вот контроллер:
[HttpPost]
public async Task<ActionResult> Add(PermissionsViewModel model)
{
if (!ModelState.IsValid)
{
var errors = ModelState.ErrorsDictionary();
return Json(new {HttpStatusCode = HttpStatusCode.BadRequest, errors});
}
var result = await _ps.Create(model);
return Json(result);
}
Ответ Я получаю это: "errors":[{},{}]}
вместо информации об ошибках.
Нет, это не путь. –