Rückgabe und Verwendung mehrerer Modelle in MVC

8

Ich konnte ein Modell erfolgreich zu einer Ansicht zurückgeben und die Ergebnisse in einer stark typisierten Weise anzeigen.

Ich habe noch nie ein Beispiel gesehen, bei dem mehrere Modelle zurückgegeben werden. Wie gehe ich da vor?

Ich nehme an, der Controller würde so etwas haben:

%Vor%

Können Sie mit MVC mehrere Modelle zurückgeben?

Und dann in der Ansicht habe ich diese Zeile am Anfang der Datei:

%Vor%

Und ich mache häufig Aufrufe an "Modell" in der Ansicht.

%Vor%

Wenn es zwei Modelle gäbe, wie würde ich sie getrennt behandeln?

Ist dies mit mehreren Modellen möglich, oder verwenden die Benutzer ViewBag und ViewData?

    
micahhoover 01.06.2011, 18:39
quelle

2 Antworten

18

Sie können ein benutzerdefiniertes Modell erstellen, das die für Ihre Ansicht erforderlichen Daten darstellt.

%Vor%

Und dann,

%Vor%

In der Ansicht:

%Vor%

Der ViewBag ist nützlich, weil er dynamisch typisiert ist, so dass Sie direkt darin Member ohne Casting referenzieren können. Sie verlieren jedoch die statische Typprüfung zum Zeitpunkt der Kompilierung.

ViewData kann nützlich sein, wenn Sie einen einmaligen Blick auf Ihre Ansichtsdatentypen haben und den Typ kennen und trotzdem einen Cast in der View durchführen. Einige Leute möchten die tatsächliche typisierte Ansicht in einem Sinne rein halten, dass sie nur das primäre Modell darstellt, andere nutzen die Typprüfung zur Kompilierzeit und machen daher benutzerdefinierte Modelle für die Ansicht erforderlich.

    
Matt 01.06.2011, 18:46
quelle
1

Ich glaube, ViewModel sollte der richtige Weg sein. Innerhalb des üblichen ViewModels können Sie im viewModel selbst auf andere Modelle verweisen oder alle zugehörigen Domänenmodelle definieren.

    
Sheikh Ali 30.12.2013 10:56
quelle