Ich versuche, eine Klasse mit Daten Annotation mit der Validator class zu validieren.Validierung von DataAnnotations mit Validator-Klasse
Es funktioniert gut, wenn die Attribute auf die gleiche Klasse angewendet werden. Aber wenn ich versuche, eine Metadatenklasse zu verwenden, funktioniert es nicht. Was sollte ich mit dem Validator tun, damit er die Metadatenklasse verwendet? Hier einige Code ..
dies funktioniert:
public class Persona
{
[Required(AllowEmptyStrings = false, ErrorMessage = "El nombre es obligatorio")]
public string Nombre { get; set; }
[Range(0, int.MaxValue, ErrorMessage="La edad no puede ser negativa")]
public int Edad { get; set; }
}
dies nicht funktioniert:
[MetadataType(typeof(Persona_Validation))]
public class Persona
{
public string Nombre { get; set; }
public int Edad { get; set; }
}
public class Persona_Validation
{
[Required(AllowEmptyStrings = false, ErrorMessage = "El nombre es obligatorio")]
public string Nombre { get; set; }
[Range(0, int.MaxValue, ErrorMessage = "La edad no puede ser negativa")]
public int Edad { get; set; }
}
das ist, wie ich die Instanzen bestätigen:
ValidationContext context = new ValidationContext(p, null, null);
List<ValidationResult> results = new List<ValidationResult>();
bool valid = Validator.TryValidateObject(p, context, results, true);
Dank.
kann ich nicht finden ValidationContext innerhalb System.ComponentModel.DataAnnotations (MVC 2.0) Mache ich etwas falsch? – Myster
@Myster überprüfen, dass System.ComponentModel.DataAnnotations.dll im Projekt referenziert wird. – Pablote
Verwenden Sie einfach [gist] (https://gist.github.com/JimmyBoh/b7c135820c18a06648a5) (eine Erweiterungsmethode) und Sie können p.Validate() –