MVC ModelState странное поведение - PullRequest
0 голосов
/ 02 октября 2018

Мое приложение MVC использует классическое действие редактирования.У меня есть модель:

 public class Case 
    {
        [RequiredEx]
        public string Id { get; set; }
        public string TicketNumber { get; set; }
        [RequiredEx]
        public Account Customer { get; set; }
    }

, где RequiredEx - это пользовательский атрибут проверки

public class RequiredExAttribute : RequiredAttribute
    {
        public bool IsRequired { get; set; }

        public override bool IsValid(object value)
        {
            switch (value)
            {
                case null: return false;
                //here goes some validation logic
                default: return base.IsValid(value);
            }
        }

        public override bool RequiresValidationContext
        {
            get
            {
                return IsRequired;
            }
        }
    }

, в то время как дочерний класс Account не имеет атрибута Required или RequiredEx, все работает нормально, но если я добавлю это attriube к одному из его полей, он прекратит валидацию самого свойства Customer, вместо того, чтобы проверять Customer.Id, Customer.Name и т. д. В форме редактирования я присваиваю только Customer.Idроприлично, этого мне достаточно,Я могу отфильтровать ненужные ошибки ModelState, но, тем не менее, могу принудительно проверить Customer свойство, MVC просто не видит всего этого, пока я не удалю все обязательные атрибуты из дочернего класса.Каково решение этой проблемы?

...