So passen validation-Attribut Fehlermeldung?
Im moment habe ich eine custom validation-Attribut namens ExistingFileName (unten) aber ich habe es Fehlermeldungen anzeigen
protected override System.ComponentModel.DataAnnotations.ValidationResult IsValid(object value, System.ComponentModel.DataAnnotations.ValidationContext validationContext)
{
if (value!=null)
{
string fileName = value.ToString();
if (FileExists(fileName))
{
return new ValidationResult("Sorry but there is already an image with this name please rename your image");
}
else
{
return ValidationResult.Success;
}
}
else
{
return new ValidationResult("Please enter a name for your image");
}
}
Implementierte ich es so:
[ExistingFileName]
public string NameOfImage { get; set; }
Im sicher theres eine Weise zu definieren, die Fehlermeldung, wenn Sie das Attribut wie folgt:
[ExistingFileName(errormessage="Blah blah blah")]
public string NameOfImage { get; set; }
Aber ich bin mir nicht sicher, wie? Jede Hilfe wird sehr geschätzt
Du musst angemeldet sein, um einen Kommentar abzugeben.
Anstatt
ValidationResult
mit einem vordefinierten string, versuchen Sie es mit derErrorMessage
Eigentum oder andere benutzerdefinierte Eigenschaften. Zum Beispiel:- Und in deiner Anmerkung:
Wenn Sie nicht explizit festlegen einer benutzerdefinierten Nachricht, es wird fallback auf die vordefinierte Konstante, die in Ihrem benutzerdefinierten Attribut.
Haben Sie geerbt von
ValidationAttribute
?dann brauchen Sie nicht zu halten, es in eine separate variable. Alle Fehler-Meldung code ist verfügbar, wenn Sie Erben von
ValidationAttribute
Klasse.Nun können Sie diese verwenden, um überprüfen Sie Ihre Felder/Eigenschaften
und wenn Sie es verwenden, wie unten.
dann wird es die Standard-Fehlermeldung legen Sie im Konstruktor der
ExistingFileName
AttributHoffe, das hilft.
IsValid
soll Rückgabe ein boolescher Wert, aber du bist der Rückkehr eineValidationResult
. Ist das richtig? Ich kann nicht, dass, um zu arbeiten, und ich kann nicht außer Kraft gesetztIsValid
zurückgebenValidationResult
.