pausa MVC3 ValidationAttribute
-
16-10-2019 - |
Domanda
ho aggiornato il mio progetto dal MVC2 a MVC3 e tutti ValidationAttributes personalizzati rotto. Ad un certo punto nella fase modello di legante, viene generata questa eccezione:
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value
System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value)
Non riesco a capire cosa cambia ... non c'è DisplayName ..
ho il sospetto l'override IsValid, che presumibilmente ha cambiato in qualche modo, ma la firma è la stessa.
public override bool IsValid(object value)
{
....
}
Più informazioni:
Essa colpisce apparentemente proprietà "AttributeTargets.Class", come in:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class MyValidationAttribute : ValidationAttribute {}
Soluzione
La soluzione era quella di cambiare AttributeTargets.Class a AttributeTargets.Property e di riscrivere ogni validatore di lavorare con una determinata proprietà.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow