Änderung Validate Nachricht in Datenaufbelichtung
-
19-09-2019 - |
Frage
mein Objekt Feld mit dem Datentyp int. wenn ich in diesem Feld Brief nicht die Nummer der Validator in HTML-Form setzen sagen- Das Feld muss eine Zahl sein. Wie kann ich diese Mitteilungen ändern wie diese
[Required(ErrorMessage = "Введите название")]
[DisplayName("Название")]
public int age { get; set; }
Lösung
Ich habe nicht eine clean Art und Weise, dies zu erreichen mit Hilfe von Data Annotations gefunden. Eine Möglichkeit wäre, ein eigenes Modell Bindemittel zu schreiben, aber dies scheint wie eine Menge Arbeit für eine solche einfache Aufgabe zu tun.
Eine andere Möglichkeit, dies zu erreichen, ist ein App_GlobalResources
Ordner zu ASP.NET-Anwendung hinzuzufügen. Fügen Sie eine Ressource-Datei namens Messages.resx
eine PropertyValueRequired
String-Ressource enthält.
PropertyValueRequired = "Some custom error message"
In Ihrem Application_Start
der Ressourcenklasse Schlüssel registrieren:
protected void Application_Start()
{
RegisterRoutes(RouteTable.Routes);
DefaultModelBinder.ResourceClassKey = "Messages";
}
Beachten Sie, dass ASP.NET MVC 2 verwendet die PropertyValueInvalid
statt PropertyValueRequired
Ressourcenschlüssel.
IMO Daten Anmerkungen mit Validierungslogik auszuführen ist begrenzt (vielleicht in .NET 4 Dies wird sich ändern). Wenn Sie möchten, die volle Kontrolle über die Validierungslogik haben, würde ich Sie mit einer Validierung Bibliothek wie Fluent Validation oder xVal .
Andere Tipps
Ich lief in das gleiche Problem und arbeitete um es durch ein RegulaererAusdruck Angabe, dass nur positive natürliche Zahlen erlaubt.
[Required(ErrorMessage = "Введите название")]
[DisplayName("Название")]
[RegularExpression(@"^[0-9]+$", ErrorMessage = "Поле возраст не является числом")]
public int age { get; set; }
Nicht sicher, ob es irgendwelche Stürze zu dieser Lösung. Es scheint zu funktionieren gut für mich.
PS:. Wenn Sie nicht möchten, dass führende Nullen verwenden "^[1-9]+[0-9]*$"
ermöglichen
Im Rückblick: Ich muss zugeben, obwohl es ein bisschen komisch ist ein regulärer Ausdruck auf eine ganze Zahl hinzuzufügen
.