Pregunta

He actualizado mi proyecto de MVC2 a MVC3 y todas ValidationAttributes personalizados rompió. En algún momento de la fase de modelo de aglutinante, que lanza esta excepción:

Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value
System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value) 

No se puede averiguar lo que cambia ... no hay DisplayName ..

sospecho que la anulación IsValid, que supuestamente cambió de alguna manera, pero la firma es la misma.

public override bool IsValid(object value)
{
   ....
}

Más información:

Al parecer afecta a las propiedades "AttributeTargets.Class", como en:

[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class MyValidationAttribute : ValidationAttribute {}
¿Fue útil?

Solución

La solución era cambiar AttributeTargets.Class a AttributeTargets.Property y volver a escribir cada validador para trabajar con una determinada propiedad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top