2014-03-24 1 views
5

Ich bin ziemlich neu zu MVC5 und asp.net und ich konnte die Antwort nicht finden, also wäre ich dankbar, wenn mir jemand sagen könnte, wie Sie die Nachricht anpassen, nachdem die Validierung fehlgeschlagen ist. Nehmen wir an, ich einen Code wie dieses:Benutzerdefinierte Validierung Fehlermeldung in MVC5

[Required] 
    [MaxLength(11),MinLength(11)] 
    [RegularExpression("^[0-9]+$")] 

    public string Pesel { get; set; } 

Nachdem alle anderen Zeichen als Ziffern ich eine Meldung wie diese bekommen: Das Feld Pesel muss den regulären Ausdruck ‚^ [0-9] + $‘

Wie kann ich diese Nachricht ändern?

Antwort

20

Alle Validierungsattribute innerhalb System.ComponentModel.DataAnnotations haben eine ErrorMessage Eigenschaft, die Sie festlegen können:

[Required(ErrorMessage = "Foo")] 
[MinLength(11, ErrorMessage = "Foo"), MaxLength(11, ErrorMessage = "Foo")] 
[RegularExpression("^[0-9]+$", ErrorMessage = "Foo")] 

Zusätzlich können Sie noch die Feldnamen/Anzeigenamen für das Objekt in der Fehlermeldung verwenden. Dies geschieht über ein String Format Setup. Im folgenden Beispiel wird die Fehlermeldung "Sie haben MyPropertyName vergessen" ausgegeben.

[Required(ErrorMessage = "You forgot {0}")] 
public string MyPropertyName { get; set; } 

Dies berücksichtigt auch das DisplayAttribute. Da MyPropertyName kein sehr benutzerfreundlicher Name ist, wird im folgenden Beispiel die Fehlermeldung "Sie haben meine Eigenschaft vergessen" ausgegeben.

[Display(Name = "My Property")] 
[Required(ErrorMessage = "You forgot {0}")] 
public string MyPropertyName { get; set; } 

Und schließlich können Sie zusätzliche String-Format Werte verwenden, um die Werte und Optionen zu machen, die in den komplexeren Validierungs Attribute verwendet werden, wie zum Beispiel die MinLengthAttribute, die Sie verwenden.

[Display(Name = "My Property")] 
[MinLength(11, ErrorMessage = "The minimum length for {0} is {1}")] 
public string MyPropertyName { get; set; } 
+0

Vielen Dank, das ist, was ich war auf der Suche nach :) –

+1

Was Internationalisierung? – Romias

1

Das RegularExpression Attribut hat ein ErrorMessage Argument: Dieses letzte Beispiel zeigt eine Fehlermeldung von „Die Mindestlänge für mein Eigentum ist 11“ machen.

[RegularExpression("^[0-9]+$","Error Message")] 
+2

Die Syntax ist falsch. Sollte [RegularExpression ("^ [0-9] + $", ErrorMessage = "Fehlermeldung") sein]] –

0

Geben entsprechende Fehlermeldung ist eine gute Praxis, weil einige Zeit, dass wir mehrere Validierung auf der gleichen Eigenschaft ... verschiedene Validierung für gleiche Eigenschaft identifizieren wir Fehlermeldung Attribut zuordnen „(Errormessage =‚Nachricht hier sein‘ „)
zB ,:

[Required(ErrorMessage = "Username Must not be blank")] 
[MinLength(8, ErrorMessage = "Too short Username"), MaxLength(20, ErrorMessage = "UserName must be less than 20")] 
[RegularExpression("^[0-9][a-z][A-Z]+$", ErrorMessage = "Username must be combination of number,letter(Capital and Small)")] 
public string UserName { get; set; }