Ошибка ModelState.isValid - PullRequest
       1

Ошибка ModelState.isValid

0 голосов
/ 08 ноября 2011

Я создал метод Edit Action, но он не входит в ModelState.isValid.Как я могу проверить ошибку?

  public PartialViewResult UpdateAccountDetails(string accountNumber)
  {
      CreditReportService crService = new CreditReportService();

      AccountInfo account = new AccountInfo();
      account.Account = service.GetAccountDetails(accountNumber);
      account.AccountStatuses = service.GetAccountStatuses();
      account.AccountTypes = service.GetAccountTypes();
      account.CreditTerms = service.GetCreditTerms();

      return PartialView("_UpdateAccountDetails", account);
  }

  [HttpPost]
  public ActionResult UpdateAccountDetails(Account account)
  {
      if (ModelState.IsValid)
      {
          service.SaveAccount(account);
          TempData["message"] = "Account has been updated successfully!";

          AccountInfo accountInfo = new AccountInfo();
          accountInfo.AccountStatuses = service.GetAccountStatuses();
          accountInfo.AccountTypes = service.GetAccountTypes();
          accountInfo.CreditTerms = service.GetCreditTerms();
          return PartialView("_UpdateAccountDetails", accountInfo);
      }
      else
      {
          return PartialView("_UpdateAccountDetails", account);
      }
  }

Ответы [ 2 ]

10 голосов
/ 08 ноября 2011

Получив доступ к коллекции ModelState.Errors . Коллекция содержит коллекцию ModelError элементов, которые содержат сообщение об ошибке и исключение, которое было вызвано, чтобы вызвать ошибку модели.


Edit: Я думаю, я должен был посмотреть сам. Кажется, что контроллер ModelState на самом деле является (словарным) набором ModelState. Чтобы получить все ошибки, вы должны иметь возможность получить все экземпляры классов ModelError через:
var errors = ModelState.Select(x => x.Value.Errors).ToList();
1 голос
/ 05 сентября 2014
var errors = var errors = ModelState.Where(m=>m.Value.Errors.Any()).Select(m => m.Value.Errors).ToList();

Чтобы получить список только полей с ошибками, а не всех полей и списка ошибок (исключая длину ошибок == 0).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...