2011-01-11 5 views
0

확인란 그룹을 검증하는 방법을 이해하려고합니다.체크 박스 그룹에 대한 사용자 정의 유효성 검사

내 모델 : 나는 적어도 1 (또는 다른 번호) 확인란이 선택되어 있는지 확인하는 사용자 정의 유효성 검사기를 만들 수 있도록하고 싶습니다

[MinSelected(MinSelected = 1)] 
public IList<CheckList> MealsServed { get; set; } 

. 그렇지 않은 경우 ErrorMessage을 표시하십시오.

#region Validators 

public class MinSelectedAttribute : ValidationAttribute 
{ 
    public int MinSelected { get; set; } 

    // what do I need to do here? 
} 

누군가 나를 도와 줄 수 있습니까?

답변

1

당신은 IsValid 메소드를 오버라이드 (override) 컬렉션 IsChecked 동일 true에 (나는 당신이 CheckList 클래스는 IsChecked 속성이 가정하자) 적어도 MinSelected 항목이 포함되어 있는지 확인 수 :

public class MinSelectedAttribute : ValidationAttribute 
{ 
    public int MinSelected { get; set; } 

    public override bool IsValid(object value) 
    { 
     var instance = value as IList<CheckList>; 
     if (instance != null) 
     { 
      // make sure that you have at least MinSelected 
      // IsChecked values equal to true inside the IList<CheckList> 
      // collection for the model to be valid 
      return instance.Where(x => x.IsChecked).Count() >= MinSelected; 
     } 
     return base.IsValid(value); 
    } 
} 
관련 문제