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 {}
War es hilfreich?

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