2017-08-09 1 views
2

ich MVC bewege nach Jahren der WebForms und ich habe eine Frage zu komplexen Seiten und wie MVC arbeitetASP.NET MVC und komplexe Modelle

ich den Controller verstehen erstellt ein Modell, das auf einen Blick übergeben wird die wird dann dem Benutzer angezeigt. Wenn wir als Beispiel die Beispiel-Homepage von Microsoft nehmen (siehe unten in diesem Beitrag) und vorgeben, dass jeder der gelb hervorgehobenen Bereiche separate datenbankgesteuerte Bereiche sind, die auf der Homepage kombiniert und durch einen Aufruf extrahiert werden die Heim-Controller/Index-Methode.

Meine Frage ist, wie eine Seite, wie die unten dargestellte, das notwendige Modell konstruieren würde, um es dann zum Rendern an die Ansicht zu übergeben.

Meine erste Option wäre komplexe ViewModel zu erstellen, die jeden der Unterabschnitte (und jeden Unterabschnitt Inhalt) enthält und diese zurück an die Ansicht übergeben, aber ich würde auf komplexen Seiten denken, das würde ziemlich schnell unordentlich werden.

Eine andere Option könnte sein, eine Reihe von RenderAction-Aufrufen (ich bin mir nicht sicher, ob das überhaupt richtig ist) an jeder Stelle zu verwenden, wo ein Unterabschnitt erscheint.

Vielleicht PartialViews/ViewComponent möglicherweise eine andere Option für mich verfügbar.

In der WebForm Welt hätte ich Benutzersteuerelemente jeweils mit ihrer eigenen Logik in der Code-Behind-Seite verwendet, aber natürlich kann ich nicht tun hier das (Obwohl ViewComponents ähnlich scheint)

eine komplexe Seite also gegeben, was ist Die beste Methode, um ein Modell oder Modelle und Ansichten/Ansichten zu generieren, um alles schön und sauber zu halten. nur

Vielen Dank für Ihre Beratung :)

enter image description here

+0

Alle Optionen, die Sie erwähnt haben, sind geeignet, aber am besten hängt es von mehreren Faktoren ab –

Antwort

1

Diese Daten sind Display. Bringe Daten in ein komplexes Modell und übertrage sie in eine andere Teilansicht.

Sie können auch Hauptdaten (Jumbotron) beim Laden der Seite laden, dann laden Rest durch Ajax jquery Aufrufe. Wenn Sie Formulardaten an den Server senden müssen, behandeln Sie diese separat.

Komplexe Modelle werden hier nicht unordentlich, weil sie unterschiedliche Rollen nur anzeigen haben. Sie können Modelle für verschiedene Teilansichten erstellen und sie als Eigenschaften dieser Klasse in das Hauptmodell einfügen. Übergeben Sie dann diese Eigenschaften an Teilansichten für das Rendern.

Schreiben Sie die Daten erneut separat. Post-Daten sollten minimal sein und nicht das gesamte Hauptseitenmodell für einige Felder von Post-Daten veröffentlichen. Verwenden Sie jQuery Ajax dafür.

Verwandte Themen