Заменить свойство modelState на, например, error

242
24 апреля 2017, 01:20

Добрый день.

Создание нового пользователя:

 public async Task<IHttpActionResult> CreateUser(IdentityUser user)
 {
      var addUser = await AppUserManager.CreateAsync(user);
      if (!addUser.Succeeded)
      {
          return GetErrorResult(addUser);
      }
      // Что-то делаем дальше.
 }

Метод GetErrorResult()

 protected IHttpActionResult GetErrorResult(IdentityResult result)
 {
     if (result == null)
     {
         return InternalServerError();
     }
     if (result.Succeeded)
     {
         return null;
     }
     if (result.Errors != null)
     {
          foreach (var error in result.Errors)
          {
              ModelState.AddModelError("Errors", error);
          }
     }
     if (ModelState.IsValid)
     {               
         return BadRequest();
     }
     return BadRequest(ModelState);
 }

Если, например, email уже зарегистрирован придет сообщение вида:

Может кто подсказать, каким образом заменить modelState на, например error

Answer 1

В методе GetErrorResult() замените

return BadRequest(ModelState);

на следующий код:

var modelState = ModelState.Select(p => new { key = p.Key, errors = p.Value.Errors.Select(e => e.ErrorMessage) })
    .ToDictionary(kv => kv.key, kv => kv.errors);
string json = JsonConvert.SerializeObject(new { Message = "", Error = modelState });
return ResponseMessage(new HttpResponseMessage(HttpStatusCode.BadRequest)
{
    Content = new StringContent(json, Encoding.UTF8, "application/json")
});
READ ALSO
Движение шарика арканоид - C#

Движение шарика арканоид - C#

Добрый день, пишу арканоид, как учебную программу, столкнулся с такой проблемой, как сделать движение шарика? как можно прописать вектор движения?...

500
Загрузка игровых данных Unity

Загрузка игровых данных Unity

Здравствуйте, есть код загрузки данных из XML файла, есть так же сценаКак реализовать кнопку в меню загрузки сцены с примененными игровыми...

367
Горячие клавиши на команды

Горячие клавиши на команды

В программе используется TabControl

245
WebBrowser Как загрузить страницу offline

WebBrowser Как загрузить страницу offline

Как загрузить html или изображению без интернета как это делается в c# пеНапример на андроиде за такую функцию отвечает shouldoverrideurlloading а на javafx...

352