MVC3 übergeben @Model zur Teilansicht

8

Ich habe zwei Teilansichten, die genau gleich sind, aber für das @Modell.

@model Project.Models.X

@model Project.Models.Y

Wie kann ich diesen Modelltyp an die Ansicht übergeben, sodass ich dieselbe Ansicht für beide verwenden kann?

    
TheGwa 21.06.2011, 13:50
quelle

4 Antworten

3

Sie können ein ViewModel Z erstellen, das an View übergeben wurde. Wenn Sie Modell X oder Y übergeben möchten, übergeben Sie das einfach an Z und übergeben Sie dann Modell Z an Ansicht.

    
gandil 21.06.2011, 13:53
quelle
5

Nicht sicher, ob dies die beste Vorgehensweise ist, aber Sie könnten auch HTML.RenderAction verwenden, um Ihren Controller aufzurufen und ein PartialViewResult mit dem gewünschten Modell zurückgeben zu lassen:

%Vor%

und

%Vor%     
mymex1 22.06.2011 07:55
quelle
2

Sorgen Sie dafür, dass beide Klassen dieselbe Schnittstelle implementieren, und verwenden Sie die Schnittstelle als Ihr Modell.

Wie von Tim vorgeschlagen: Wenn möglich könnten Sie auch von derselben Basisklasse erben. Obwohl dies nicht immer möglich ist, ist die Verwendung des Schnittstellenansatzes meistens möglich.

    
GvS 21.06.2011 13:52
quelle
1

Meistens wie gandil: Erstellen Sie ein ViewModel Z, aber verwenden Sie den Automapper, um von Y und X zu mappen. Auf diese Weise können Sie Ihre UI-Modelle sauber und trocken halten.

    
John Landheer 21.06.2011 14:22
quelle