В ASP.NET MVC, как получить элемент (из списка), который сгенерировал ошибку проверки в модели-валидации - PullRequest
0 голосов
/ 01 апреля 2019

У меня есть контроллер API со следующим заголовком действия:

public IHttpActionResult Post(InvoicesDTO invoices)

, где InvoicesDTO выглядит следующим образом:

public class InvoicesDTO
    {
        public int IdHeader { get; set; }
        [DataType(DataType.DateTime)]
        public DateTime DateSend { get; set; }
        public List<InvoiceDTO> ListInvoices { get; set; }
    }

, а InvoiceDTO - это класс POCO с некоторыми валидациями DataAnnotations.

Проблема в том, что я хочу, чтобы при возникновении ошибки проверки знать, какой InvoiceDTO из списка InvoicesDTO является тем, который сгенерировал ошибку, чтобы иметь возможность сделать что-то вроде этого:

if (ModelState.IsValid)
{
}
else
{    
_logger.LogError($"Validation Error at Invoice -
{ModelState.Values.First().WHATEVER_TO_GET_THE_ELEMENT_THAT_GENERATED_THE_ERROR");
}

спасибо!

1 Ответ

0 голосов
/ 01 апреля 2019

Вы можете выполнить итерацию по всем свойствам модели и проверить допустимость для отдельного свойства.

bool isvalid = ModelState.IsValidField ("Свойство модели");

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