Benutzerdefinierte Validierung mit datenanmerkungen
Ich bin mit der Daten Anmerkungen zu überprüfen, Daten eingegeben, aber ich bin stecken, wenn es um die individuelle Art und Weise, um Daten zu validieren.
Brauche ich zum ausführen von Abfragen gegen die Datenbank, um zu sehen, wenn Sachen vorhanden ist oder nicht, und dann Bericht erstatten, um Benutzer, wenn Sie eine "benutzerdefinierte db-check error" erscheint, wie "Die Firma existiert bereits"
Wie kann ich die Implementierung einer solchen Sache zusammen mit dataannotations?
Ich habe alle Abfragen gemacht, etc mit linq und entity framework kommt mit 3.5sp1
/M
- Ist das für MVC2?
- seine für mvc 1.0
Du musst angemeldet sein, um einen Kommentar abzugeben.
Benutzerdefinierte Attribute erweitern können Anmerkungen zu Daten
Haben Sie zu schreiben Ihre eigenen Attributen, die Validierung der Objekt-Instanz an Daten speichern.
Stellen Sie sicher, dass Ihre Klassen Erben
System.ComponentModel.DataAnnotations.ValidationAttribute
Klasse:Vorsicht
Ich habe laufen in eine ähnliche situation, wenn ich brauchte, um zu überprüfen, dass das Objekt eindeutig innerhalb der Daten zu speichern. Aber diese Art der Validierung war nicht möglich, auf die entity-Klasse selbst, da sollte es nur Arbeit für jene Entitäten, die erstellt werden, aber nicht zurückkehren, wenn Sie Ihre Einheit von der data store bereits.
Meine Lösung war eine separate Schnittstelle, - Klasse und Attribut.
Konnte ich mein Attribut für controller-Aktionen, die bekommen entity-Parameter. Filter action-Attribut prüft dann, controller, Aktion, Parameter (es kann leicht Zugriff auf Ihre Typen und Werte) und läuft externen validator gegen die richtigen Parameter (sofern Typen-Attribut-definition) und füllt ModelState Fehler, wenn die Validierung fehlschlägt.
Diese Weise konnte ich die externe Validierung nur auf jene Aktionen, die tatsächlich benötigt werden, und diese Technik auch geholfen, meine controller-Aktionen-code, um clean zu bleiben und kurz. Alle die ich tun musste, ist zu prüfen, ob es irgendwelche Modell-Zustand-Fehler.