ASP.Net Erstellen Sie zwei Modelle mit einem Controller

9

Ich versuche nur, einen Controller zu erstellen, der mit zwei Modellen arbeitet. Kommentarmodell:

%Vor%

Post-Modell:

%Vor%

Und jetzt möchte ich einen einzelnen Controller erstellen, der mit beiden Modellen funktioniert. Ich habe gelesen, dass die Methode ViewModel Pattern verwendet, also habe ich eine weitere Modellklasse mit dem Namen " BlogViewModel.cs " mit dem folgenden Code erstellt:

%Vor%

Aber von hier aus habe ich nicht verstanden, was ich mache. Ich versuche, einen neuen Controller mit Entity-Framework zu erstellen, aber ich weiß nicht, was ich in der "Datenkontextklasse" auswählen soll . Kann mir jemand erklären, wie man die Verbindung zwischen beiden Modellen und dem Controller herstellt? Danke!

    
Tomer Aro 09.05.2015, 21:03
quelle

4 Antworten

1

Bitte versuchen Sie Folgendes in Ihrer Repository-Klasse -

%Vor%

Folgen Sie bitte dem link , um zu sehen, wie die Konvertierung vom Modell zum ViewModel und umgekehrt erfolgt

    
Rakesh Jena 02.11.2015, 13:39
quelle
1

Sie benötigen nur einen Controller: Post.

Da sich die Kommentare auf Post beziehen, können Sie eine Beziehung erstellen und sie mithilfe von EF zuordnen. Ihre Post wird also eine Liste von Kommentaren haben, die entsprechend Ihrer Wahl eifrig oder faul abgerufen werden können. Also googeln Sie nach EF One to Many Relationships, erstellen Sie eine virtuelle Eigenschaft in Ihrem Post, die ein IEnumerable ist, und geben Sie sie aus einem beliebigen Modell zurück.

Wenn ich hier nicht etwas verpasse, brauchen Sie kein ViewModel ... um dieses Problem zumindest nicht zu lösen. ViewModel sind nützlich, wenn es um Organisation geht.

    
dmyoko 09.05.2015 21:13
quelle
0

Sie können es auch so machen

%Vor%

@Html.DisplayNameFor(x=>x.CommentPointer.Title) @Html.DisplayFor(x=>x.CommentPointer.Title)

@Html.DisplayNameFor(x=>x.PostPointer.Title) @Html.DisplayFor(x=>x.PostPointer.Title)

Dieser Code hilft Ihnen jedoch, Daten aus beiden Tabellen anzuzeigen. Außerdem @TomerAro Ich würde Ihnen raten, einen Kontext zu verwenden, da mehrere Kontexte Verwirrung stiften könnten

    
Ayomide Fajobi 10.05.2015 00:49
quelle
0

In diesem Szenario müssen Sie nicht zwei Modelle in Sicht übergeben. Sie können einfach das Comment -Modell übergeben. Sie können jedoch Tupel verwenden, um mehrere Modelle in view zu übergeben. Hier ist ein großartiges Beispiel der CRUD-Operation mit Tuple

    
Anupam Shukla 14.09.2015 06:16
quelle