2009-07-11 7 views
3

Betrachten Beispiele und Tutorials für einige MVC-Bibliotheken für Web-Entwicklung im Internet, fand ich, dass viele von ihnen HTML direkt im Code der Model-Klasse erstellen und dann Controller sendet es einfach an die Ansicht, die es nur anzeigt. Während dies Controller und View sehr einfach und sauber macht, halte ich das für einen falschen Ansatz. IMHO, Modell sollte nur Daten abrufen, ohne eine Repräsentationslogik darin zu haben. Der Controller sollte diese Daten an die Ansicht übergeben, und die Ansicht würde den Code enthalten, der sie durchläuft und endgültiges HTML erzeugt.Holen Sie HTML direkt von Model (MVC) eine gute Idee?

Ist mein Denken richtig, oder fehlt mir hier ein wichtiger Punkt?

Antwort

3

Die Präsentationslogik wird zwischen der Ansicht (dem größten Teil) und dem Controller geteilt. Das Modell sollte sich nicht mit der Darstellungslogik befassen.

Wenn dies der Fall ist, haben Sie keine Trennung von Bedenken. Dies ist nicht inhärent eine schlechte Sache, aber Sie vermissen die Vorteile der Trennung von Präsentation und Business-Logik. Also nein, das ist keine gute Idee.

Dies gesagt, gibt es Elemente der Präsentationslogik, die an das Modell gelangen können. Denken Sie an ein cms. Idealerweise würden Sie alle Daten markiert haben, sagen wir xml, auf die Sie eine Vorlage anwenden würden, um sie zu liefern. Die Daten und die Vorlage werden jedoch im Modell beibehalten. Was ist Präsentation und was ist Geschäft hier?

Es gibt graue Bereiche, aber die Präsentation und die Geschäftslogik sind in den meisten Fällen einfach zu trennen.

2

Ihr Denken ist absolut richtig. Wenn Sie eine saubere Trennung von Problemen wünschen, ist es am besten, wenn die Ansicht HTML aus Modell erzeugt. In einigen Fällen könnten HTML-Helfer verwendet werden.

1

Holen Sie HTML direkt von Model (MVC) eine gute Idee?

Mein Bauchgefühl würde nein sagen. Durchbricht das Konzept der Trennung von Anliegen.

Verwandte Themen