Ich validiere Eingabewerte mit FluentValidation. Ich benutze eine Methode, um Wert von der Datenbank zu validieren, die den Ganzzahlwert -1, -2 und -3 für verschiedene Fehlermeldungen auf der Basis des Wertes zurückgibt. Wie kann ich Fehlermeldung entsprechend dem Rückgabewert von Methode anzeigen. Ich habe eine Variable im Klassenbereich erstellt und den Rückgabewert gesetzt und in der nächsten Anweisung habe ich einen Vergleich versucht und versucht, die Nachricht anzuzeigen, aber ich beobachte, dass die nächste Anweisung vor dem Aktualisierungswert ausgeführt wird.FluentValidation Mehrere Fehlermeldungen für eine Eigenschaft
Ich möchte verschiedene Fehlermeldungen für einen Eingangswert anzeigen.
zum Beispiel Benutzereingabe eine negative Wert Fehlermeldung sollte "negative Werte sind nicht erlaubt", wenn Benutzer eine große Wertnummer eingeben, dann sollte die Nachricht "Nummer ist zu lang" sein.
Hier ist der Code ISValidAction ist eine Methode, die die Eingabe validiert und die Variable returnvalue setzt diese Methode gibt immer true zurück.
int returnvalue = 0;
RuleFor(r => r.action).Must(ISValidAction).WithMessage("Action does not exist in the system.").When(r => !String.IsNullOrEmpty(r.action));
RuleFor(r => returnvalue).Must(r => !(returnvalue != 1 && returnvalue != -2 && returnvalue != -3)).WithMessage("");//for -1
RuleFor(r => returnvalue).Must(r => !(returnvalue != 1 && returnvalue != -1 && returnvalue != -3)).WithMessage("");//for -2
RuleFor(r => returnvalue).Must(r => !(returnvalue != 1 && returnvalue != -1 && returnvalue != -2)).WithMessage("");// for -3
Ich weiß nicht, warum ich den Fehler bekomme: Kann nicht von 'Methodengruppe' in 'Func' –
konvertieren An welchem Punkt? –
Muss .WithMessage ("{ValidationMessage}") nach Must() hinzufügen, damit es funktioniert – serg