Frage

Ich bin mit ASP.NET MVC mit Entity Framework POCO-Klassen und der FluentValidation Rahmen. Es funktioniert gut, und die Validierung geschieht, wie es soll (als ob ich DataAnnotations bewertet wurde). Ich habe auch die clientseitige Validierung Arbeits bekommen. Und ich bin ziemlich zufrieden damit.

Da dies eine Testanwendung, die ich gerade schreibe, um zu sehen, ob ich neue Technologien erhalten kann zusammen arbeiten (und lernen, sie auf dem Weg), bin ich nun bereit, zu experimentieren Viewmodel anstelle der Weitergabe nur das tatsächliche Modells an den Aussicht. Ich plane, so etwas wie AutoMapper in meinem Dienst zur Verwendung des Mapping hin und her von Modell zu Ansichtsmodell zu tun, aber ich habe eine Frage zuerst.

Wie wird dies meine Validierung beeinflussen? Sollte meine Prüfklassen (geschrieben mit FluentValidation) gegen die anstelle des Modellansichtsmodell geschrieben werden? Oder braucht es in beiden Orten geschehen? Einer der großen Angebote über DataAnnotations (und FluentValidation) war, dass man die Validierung an einem Ort haben könnte, die „überall“ funktionieren würde. Und es erfüllt dieses Versprechen (meistens), aber wenn ich Viewmodels beginnen, nicht verlieren ich diese Fähigkeit und haben zu setzen Validierung an zwei Stellen zurückgehen?

Oder bin ich nur daran denke falsch?

War es hilfreich?

Lösung

  

Oder bin ich nur daran denke falsch?

Wahrscheinlich;)

Wenn Sie alle Validierungscode zu Ihrem Viewmodels hinzufügen würden Sie sie einfach anstelle Ihres tatsächlichen Models Validierung werden. Alle ändern Ihre wirklich ist, welche Objekte einen ungültigen Zustand eingeben.

Right Ich bin jetzt glücklich, als Pastete nur Viewmodel Validierung und gibt dann diese Informationen zurück zu den aktuellen Modellen und DAO Schichten. Unabhängig davon, ob Ihre Domain kann einen ungültigen Zustand betreten ist ein umstrittenes Thema, obwohl doch so weit diese Technik funktioniert gut für mich. Validierung an einem Ort und keine ungültigen Objekte in meinem Persistenzspeicher.

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