Вопросы о Asp. net Mvc проверке правильности ввода - PullRequest
1 голос
/ 27 марта 2020

У меня проблема в разработке.

public class Student
{
     public bool a{get;set;}
     public string b{get;set;}
}

B не может быть пустым, когда a равно true, иначе b может быть пустым. Теперь мне нужно использовать атрибут для проверки. Что я могу сделать?

1 Ответ

0 голосов
/ 27 марта 2020

Если вы настаиваете на использовании проверки атрибута, то вам придется создать свой собственный атрибут и, вероятно, попытаться получить доступ к значению a с помощью отражения. Слишком сложно, если вы спросите меня ...

Проверьте это о том, как создавать свои собственные атрибуты проверки.

Я бы скорее предложил вам использовать интерфейс IValidatableObject .

public class Student : IValidatableObject
{
   public bool a{get;set;}
   public string b{get;set;}

   public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) 
   {
      if(a & string.IsNullOrEmpty(b)) 
        yield return new ValidationResult("b is required", new[] {"b"});
   }
}

Метод Validate будет запущен после проверки и прикрепит сообщение ValidationResult к свойству, включенному в список (b в вашем случае).

Попробуйте это решение.

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