Frage

Bei der Codierung einer traditionellen MVC-Anwendung, was ist die beste Praxis für die Kodierung server-side form Validierungen?Funktioniert der code gehören im controller oder Modell-Ebene?Und warum?

War es hilfreich?

Lösung

Aus Wikipedia:

Model-view-controller (MVC) ist ein Architekturmuster in der software-engineering.Die erfolgreiche Verwendung der Muster-Isolate business logic from user interface considerations, was in einer Anwendung, in denen es einfacher ist, ändern die Optik der Anwendung oder den zugrunde liegenden Geschäftsregeln ohne das andere zu beeinflussen.In MVC ist das Modell stellt die Informationen (die Daten) der Anwendung und die business-Regeln verwendet, um die Daten bearbeitet werden;die Ansicht entspricht Elemente der Benutzeroberfläche, wie text -, checkbox-Elemente, und so weiter;und der controller verwaltet die details mit der Mitteilung das Modell von Benutzeraktionen wie Tastatureingaben und Mausbewegungen.

So, Modell - es hält die Anwendung und die business-Regeln.

Andere Tipps

Ich Stimme völlig mit Josh.Aber Sie können erstellen eine Art von Validierung Schicht zwischen den Controller und das Modell so, dass die meisten syntaktische überprüfungen können durchgeführt werden, auf der Daten vor dem erreichen von Modell zu Modell.

Für Beispiel,

Die Validierung Schicht würde überprüfen die Datum-format, amount format, Pflicht-Felder, etc...

Damit wäre das Modell rein auf das Geschäft konzentrieren Validierungen wie x Höhe sollte größer sein als y-Menge.

Meine Erfahrung mit MVC bisher besteht vollständig Schienen.

Schienen ist es die überprüfung zu 100% in die Modell.
Zum größten Teil funktioniert dies sehr gut.Ich würde sagen, dass 9 von 10 mal ist es alles, was Sie brauchen.

Es gibt einige Bereiche, aber wo das, was man Einreichen, die von einem Formular nicht übereinstimmen mit Ihre Modell richtig.Es kann einige zusätzliche Filterung/umräumen oder so auf.

Der beste Weg, um zu lösen diese Situationen, die ich gefunden habe, ist erstellen Sie faux-model-Objekte, die im Grunde agieren, wie Model-Objekte, sondern-map-1-zu-1 mit der form von Daten.Diese faux-Modell-Objekte nicht wirklich etwas sparen, Sie sind nur ein Eimer für die Daten mit der Validierungen befestigt.
Ein Beispiel für solch eine Sache (in rails) ist ActiveForm

Sobald die Daten wird in dieser (und gilt) es ist in der Regel ein ziemlich einfacher Schritt-übertragen es direkt über Ihre aktuellen Modelle.

Die basic-syntax überprüft werden soll, in die Kontrolle, wie es übersetzt die Eingabe des Benutzers für das Modell.Das Modell muss die real-Daten-Validierung.

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