У меня есть ситуация, когда мне нужно проверить ребенка, но только если он существует.По сути, пользователь может ввести либо банковский счет, либо кредитную карту, и я хочу подтвердить только тот, который они вводят.
Вот модели:
public class AccountViewModel
{
[Required]
public bool isBankAccount { get; set; }
[RequiredIf("isBankAccount")]
public BankAccount BankAccount { get; set; }
[RequiredIf("isBankAccount",
IfNot = true)]
public CreditCard CreditCard { get; set; }
}
public class CreditCard
{
[Required]
[CreditCard]
public string CreditCardNumber { get; set; }
[Required]
[Range(1, 12)]
public int? ExpiryMonth { get; set; }
[Required]
[Range(2000, 3000)]
public int? ExpiryYear { get; set; }
[Required]
public string CardHolderName { get; set; }
}
public class BankAccount
{
[Required]
public string BSB { get; set; }
[Required]
[StringLength(10,
MinimumLength = 3)]
[NumbersOnly]
public string AccountNumber { get; set; }
[Required]
public string AccountHolderName { get; set; }
}
Моя проблема заключается вдетские атрибуты все еще проверяются, несмотря на то, что родительский атрибут проверяется как true.Есть ли способ помешать детям проверить, если родитель так говорит?