pause MVC3 ValidationAttribute
-
16-10-2019 - |
Question
Je mis à jour mon projet de MVC2 à MVC3 et tous ValidationAttributes personnalisés cassé. À un certain moment dans la phase de liant modèle, il jette cette exception:
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value
System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value)
Je ne peux pas comprendre ce qui change ... il n'y a pas DisplayName ..
Je soupçonne que la dérogation IsValid, ce qui a changé soi-disant en quelque sorte, mais la signature est le même.
public override bool IsValid(object value)
{
....
}
PLUS D'INFO:
Il affecte apparemment propriétés "AttributeTargets.Class", comme dans:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class MyValidationAttribute : ValidationAttribute {}
La solution
La solution était de changer AttributeTargets.Class à AttributeTargets.Property et de réécrire chaque validateur de travailler avec une propriété donnée.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow