Die Attributvalidierung ist perfekt für was es tun kann. Zusätzlich zu den von Ihnen genannten Validierungsattributen verfügen Sie über das Attribut EmailAddress, mit dem die angegebene Eigenschaft als E-Mail-Adresse validiert wird.
[EmailAddress(ErrorMessage = "Invalid Email Address")]
Dann Sie das RegulaererAusdruck Validierung Attribut für kompliziertere benutzerdefinierte Validierungen tun:
[RegularExpression(@"^[a-zA-Z''-'\s]{1,40}$",
ErrorMessage = "Characters are not allowed.")]
Für bedingte Validierung und solche Dinge, können Sie diese Logik zu Ihrem Controller hinzufügen und fügen Sie Fehler an das Model als erforderlich.
Beispiel:
if (MyProperty == "something" && MyOtherProperty != "something")
{
ModelState.AddModelError("", "MyOtherProperty needs to be something")
}
Wenn Sie nicht so vorformulierten Validierungscode in der Controller-Logik wollen, können Sie Ihre eigene benutzerdefinierte Validierung Attribute schreiben. Auf diese Weise können Sie praktisch alles validieren, was Ihnen einfällt.
Es gibt viele Ressourcen zu diesem Thema im Internet.
How to create a custom validation attribute?
How to create Custom Data Annotation Validators
nur einige zu nennen.
Ich werde glücklich sein, zu korrigieren, aber ich * glaube * diese Attribute werden die HTML dynamisch setzen, so dass die Eingabe zum Beispiel das 'required' Attribut gesetzt haben wird. Aber ich kann mich nicht erinnern, jemals serverseitige Überprüfungen für Sie durchgeführt zu haben. Sie müssten wahrscheinlich auch die Daten in Ihrem Controller bereinigen, was nie eine schlechte Übung ist. –
@DrewKennedy Aah ich sehe. Kennen Sie eine gute Anleitung zum Hinzufügen der Validierung im Controller? – Nyprez
Nicht so sehr eine Anleitung, aber Sie können 'ModelState' immer verwenden, um eine Validierungsprüfung durchzuführen, und' AddModelError', um jedes Problem zu definieren, oder die Eigenschaft verwenden, um die Fehlermeldung zu definieren. [Hier ein gutes Beispiel] (http://stackoverflow.com/a/21911236/4204026). –