MVC3 ValidationAttribute Break
-
16-10-2019 - |
Frage
Ich habe mein Projekt von MVC2 auf MVC3 verbessert und alle benutzerdefinierten ValidationAttributes pleite. Irgendwann in der Modellbindemittelphase wirft diese Ausnahme aus:
Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: value
System.ComponentModel.DataAnnotations.ValidationContext.set_DisplayName(String value)
Ich kann nicht herausfinden, was sich ändert ... Es gibt keinen DisplayName.
Ich vermute, die Isvalid -Übersteuerung, die sich angeblich irgendwie geändert hat, aber die Signatur ist die gleiche.
public override bool IsValid(object value)
{
....
}
MEHR INFO:
Es wirkt sich offenbar wie in: "AttributTargets.class" -Formen aus, wie in:
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true, Inherited = true)]
public sealed class MyValidationAttribute : ValidationAttribute {}
Lösung
Die Lösung bestand darin, AttributTargets.class in AttributTargets.Property zu ändern und jeden Validator so umzuschreiben, um mit einer bestimmten Eigenschaft zu arbeiten.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow