Ist es eine schlechte Übung, ein ViewModel mit einer Eigenschaft zu verwenden, die als ein anderes ViewModel in ASP.NET MVC eingegeben wurde?

8

Wäre es nicht ratsam, ein Viewmodel mit einer Eigenschaft eines anderen View-Modells zu haben? ... wie in:

%Vor%

BEARBEITEN

Ein wenig mehr über meine besondere Situation:

Ich habe ein Ansichtsmodell, das derzeit 2 Domänenklassen enthält. Ich übergebe dieses Viewmodel an eine View, die 2 partielle Views lädt (eine für jede Domain-Klasse im Viewmodel)

Damit übergebe ich reine Domänenmodelle direkt in die Teilansichten.

Ich denke, dass ich für jedes Domänenmodell, das zu den Partials gehört, ein View-Modell erstellen kann ... und dann diese 2 in ein anderes View-Modell einbinden, das an meine Eltern übergeben wird ...

oder gibt es einen besseren Weg, dies zu erreichen?

    
stephen776 15.04.2011, 13:36
quelle

4 Antworten

12

Nein, es ist überhaupt nicht schlecht. Es ist ein perfekter Code. Sie können Teile von Ansichtsmodellen zwischen verschiedenen Ansichten wiederverwenden.

    
Darin Dimitrov 15.04.2011, 13:40
quelle
6

Ich glaube nicht, dass ich es für eine schlechte Praxis halten würde, ein ViewModel innerhalb eines anderen zu aggregieren. Ich kann einen Vorteil sehen, wie eine Teilansicht rendern oder EditorFor des aggregierten Ansichtsmodells verwenden zu können.

    
CAbbott 15.04.2011 13:41
quelle
2

Es ist definitiv in Ordnung. Ansichtsmodelle sollten im Konzept Ihr Domänenmodell mit relevanten Informationen für eine bestimmte Ansicht (en) nachahmen.

Denken Sie daran, dass "Best Practices", wenn sie einmal kontraproduktiv und kontraproduktiv sind, in diesem gegebenen Szenario nicht mehr die beste Vorgehensweise für Sie darstellen. Best Practices sind Richtlinien, die nicht strikt eingehalten werden.

Bearbeiten: Ich habe meinen ersten Kommentar geändert, weil ich mir nicht sicher bin, ob ich vorher klar genug war, um zu sagen, dass es in Ordnung sei.

Edit2: Fragen Sie sich auch, ob Sie überhaupt View-Modelle benötigen. Wenn sie Ihre Domain-Modelle buchstäblich nachahmen, worauf kommt es dann an? Verwenden Sie einfach Ihr Domänenmodell (es sei denn, Sie haben andere Abhängigkeiten, die dies hässlich machen würden).

    
Chance 15.04.2011 13:42
quelle
-2

Nein, Sie haben möglicherweise Partnermodell im Vergleich zu einigen Feldern wie:

%Vor%

Es ist einfach in View für die Show-Liste vs Paging zu verwenden

    
Vladimir Shmidt 15.04.2011 13:42
quelle