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

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

.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top