Erstellen Sie ViewModel für die Navigation

Ich habe eine MVC 4-Anwendung mit mehreren Ansichten. Das heißt Produkte, Rezepte, Distributoren und Geschäfte.

Jede Ansicht basiert auf einem Modell.

Lassen Sie es uns einfach halten und sagen, dass alle meine Controller ein ähnliches Ansichtsmodell haben, das ungefähr so ​​aussieht wie meine Produktaktion:

public ActionResult Index()
{
    return View(db.Ingredients.ToList());
}

Ok, das ist in Ordnung, keine Probleme. Aber jetzt, da alle meine Seiten funktionieren, möchte ich meine Navigation ändern (die Dropdown-Listen für jede Ansicht enthält), um die Elemente in diesem Modell zu laden.

Ich hätte also eine Navigation mit 4 Buttons (Produkte, Rezepte, Distributoren & Stores).

Wenn Sie über die einzelnen Schaltflächen rollen (sagen wir, wir rollen über die Schaltfläche "Produkte"), werden die Produkte in einem Dropdown-Menü aufgelistet.

Dazu muss ich einen ViewModel-Typ erstellen, der alle 4 dieser Modelle kombiniert. Natürlich kann ich nicht einfach eine PartialView für jedes Navigationselement ausschneiden und verwenden

@model IEnumerable<GranSabanaUS.Models.Products>

Und wiederholen Sie die Produkte für diese Dropdown-Liste, denn dann funktioniert diese Navigation nur in der Produktansicht und nirgendwo anders.

(After the solution) UND JA ROWAN Die Art der Navigation, die ich erstelle, stimmt, siehe hier:

Antworten auf die Frage(2)

Ihre Antwort auf die Frage