2010-11-18 8 views
1

나는 자식을 유효하게 할 필요가 있지만 존재할 경우에만 상황이 발생합니다. 기본적으로 사용자는 은행 계좌 또는 신용 카드를 입력 할 수 있으며 입력 한 은행 계좌를 확인하기 만합니다.ASP.NET MVC 3 복잡한 형식 유효성 검사

다음은 모델입니다

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; } 
} 

내 문제는 아이들의 속성은 여전히 ​​부모의 속성이 같은 사실 검증에도 불구하고 검증되고 있다는 점이다. 부모가 그렇게 말하는 경우 자녀의 확인을 중단 할 수있는 방법이 있습니까?

+1

[데이터 주석으로 종속 속성 확인] (http://stackoverflow.com/questions/2280539/custom-model-validation-of-dependent-properties-using-data-annotations)을 참조하십시오. –

답변

0

PaymentMode 속성을 만들고 PaymentMode에서 Bank와 CC를 모두 가져와 필드를 필수로 만들고 사용자가 선택하고 입력 할 수있는 UI를 처리해야하는 이유는 무엇입니까?

그냥 생각해보십시오.

관련 문제