2011-01-05 1 views
1

Ich bin neu in MVC2 und ein kleines Problem mit der Implementierung Validierung über Buddy-Klassen. Ich benutze Repository-Muster mit Dependency-Injektion. Mein Entity-Objektmodell befindet sich im Data-Layer-Projekt und die Buddy-Klassen befinden sich im Business-Layer-Projekt und MVC 2-Projekt als separates Presentation-Layer-Projekt.MVC2 Data Annotation Buddy Classes Scheint nicht zu funktionieren, wenn Klassen und EOM-Modell in separaten Projekt ist

Kann mir jemand bei der Implementierung von Buddy-Klassen in dieser Architektur helfen?

+0

Gut nach Abit spielen .. Ich habe herausgefunden, dass ich meine Buddy-Klasse verwenden muss beim Erstellen von Ansichten und es wird dann validieren. Jetzt ist hier ein weiterer Kicker? Benötige ich eine Mapper-Klasse, um Buddy-Klasseneigenschaften mit der Model-Entity-Klasse zuzuordnen. Wenn ja, warum ist es nicht req. wenn ich Buddy-Klassen und -Modell im selben Projekt halte? –

Antwort

0

Teilklassen funktionieren nur innerhalb derselben Baugruppe. Sie haben also zwei Möglichkeiten: Definieren Sie Validierungsregeln in derselben Assembly wie Ihre Modellklassen oder verwenden Sie keine DataAnnotations. Alternativ können Sie sich auch die FluentValidation ansehen, mit der Sie Validierungsregeln in einer separaten Assembly definieren können und die ebenfalls eine gute Integration mit ASP.NET MVC bietet.

Soweit die Ansichten in Ihrem MVC-Projekt betreffen, sollten sie nie mit Ihren Modellklassen arbeiten. Sie sollten Ansichtsmodellklassen definieren, die speziell auf die Anforderungen jeder Sicht zugeschnitten sind. Der Controller führt dann die Zuordnung zwischen den Modellen und den Ansichtsmodellen durch. AutoMapper könnte verwendet werden, um diese Aufgabe zu erleichtern. Im Grunde sollten alle Benutzereingaben wie Pflichtfelder und Datetime-Formate im View-Modell und in den Business Rules auf der Service-Ebene validiert werden.

+0

Danke für Ihre schnelle Antwort. Also in meinem Fall Daten Annotationen ist nicht in Frage.Cool.But wenn ich meine Buddy-Klassen verwenden, um eine stark typisierte Ansicht zu erstellen, dann funktionieren Validierungen. Soll ich damit gehen? Oder würden Sie FluentValidation.Can empfehlen? Ich schicke Ihnen mein Projekt, damit Sie es überprüfen können und geben Sie mir einige Ratschläge. "Danke nochmal. –

Verwandte Themen