2011-01-11 13 views
0

Ich versuche zu verstehen, wie ich eine Gruppe von Kontrollkästchen validieren kann.Benutzerdefinierte Validierung für eine Gruppe von Kontrollkästchen

My Model:

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

Ich mag würde der Lage sein, einen benutzerdefinierten Validator zu erstellen, die mindestens 1 (oder eine andere Nummer) Kontrollkästchen aktiviert ist, wird dafür sorgen, dass. Wenn nicht, Anzeige ErrorMessage.

#region Validators 

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

    // what do I need to do here? 
} 

Könnte mir jemand dabei helfen?

Antwort

1

Sie könnten die IsValid Methode außer Kraft setzen und sicherzustellen, dass die Sammlung mindestens MinSelected Artikel mit IsChecked gleich true enthält (Ich nehme an, diese CheckList Klasse von Ihnen hat eine IsChecked Eigenschaft):

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); 
    } 
} 
Verwandte Themen