ASP.Net MVC 3 DataAnnotations проверка списка <T> - PullRequest
1 голос
/ 24 августа 2011

У меня есть ViewModel, который был десериализован из JSON, который выглядит примерно так:

public class UserThingsUpdateViewModel
{
    public IList<Thing> Things { get; set; }
    [Required]
    public int UserId { get; set; }
    public int Age { get; set; }
}

Thing также ViewModel, который также имеет различные атрибуты DataAnnotaion ValidationAttribute в свойствах.

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

Итак, каков наилучший способ проверки моего списка и добавления ошибок модели в состояние модели?

Ответы [ 2 ]

2 голосов
/ 24 августа 2011

Перед проверкой ModelState.IsValid вы можете добавить код для выполнения и проверки каждого Thing следующим образом:

foreach (var thing in Things)
    TryValidateModel(thing);

Это будет проверять каждый элемент и добавлять любые ошибки в ModelState.

0 голосов
/ 24 августа 2011

Вы могли бы написать собственный атрибут валидатора и украсить им свойство списка?Это позволит вам написать собственную логику, чтобы вывести элементы из списка и проверить их.

...