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 {}
Était-ce utile?

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
scroll top