|
|
Veröffentlicht am 07.02.2021, 16:18:25
|
|
|
|

Wenn eine große Anzahl von Seiten dasselbe View-Ergebnis aufruft, können wir denselben Inhalt in eine View-Komponente kapseln. Natürlich können wir auch Parameter an die View-Komponente weitergeben und das Antwortergebnis zurückgeben, Szenarien: Bestenlisten, Formulare, Tabellen usw.; dieser Artikel verwendet asp.net Core 3.1, um zu erklären, wie man das ViewComponent View-Component-Tutorial verwendet.
Komponenten anzeigen
Die View-Komponente ist ähnlich wie eine lokale Ansicht, aber leistungsfähiger. Die View-Komponente verwendet keine Modellbindungen, sondern verlässt sich ausschließlich auf die Daten, die beim Aufruf des Modells bereitgestellt werden. Dieser Artikel wurde mit Controllern und Ansichten verfasst, aber die Ansichtskomponente kann auch mit Razor Pages verwendet werden.
Komponenten ansehen:
- Rendere Blöcke statt der gesamten Antwort.
- Beinhaltet die gleiche Trennung von Anliegen und Testbarkeitsvorteilen wie zwischen Controllern und Ansichten.
- Es kann Parameter und Geschäftslogik enthalten.
- Wird meist von der Layoutseite aufgerufen.
View-Komponenten können überall verwendet werden, wo wiederverwendbare Rendering-Logik zu komplex für eine lokale Ansicht ist, wie zum Beispiel:
- Dynamisches Navigationsmenü
- Tag Cloud (wo die Datenbank abgefragt wird)
- Login-Panel
- Einkaufswagen
- Kürzlich veröffentlichte Artikel
- Seitenleisteninhalte in einem typischen Blog
- Das Login-Panel erscheint auf jeder Seite mit einem Link zum Aus- oder Einloggen, abhängig vom Login-Status des Nutzers
Teilansicht
In asp.net MVC 5 können wir eine lokale Ansicht mit folgendem Code verwenden:
Anrufmethode:
ViewComponent ist eine Alternative zu lokalen Ansichten.
ViewComponent, um loszulegen
Komponenteklasse ansehen:
- Konstruktorabhängigkeitsinjektion wird vollständig unterstützt
- Nicht am Lebenszyklus des Controllers beteiligt, was bedeutet, dass man keine Filter in View-Komponenten verwenden kann
- Ohne weitere Umschweife kommen wir direkt zum Punkt, an dem wir die Komponentenfunktionalität einer urbanen Gebietsklassifikation zusammenfassen wollen.
Zuerst erstelle einen neuen "ViewComponents"-Ordner unter dem Projektverzeichnis und erstelle eine neue "RootClassification.cs"-Klassendatei mit folgendem Code:
Auf der View-Seite erstellen wir einen neuen "Components"-Ordner unter dem "/Views/Shared"-Ordner des Projekts, dann einen neuen "RootClassification"-Ordner (das ist das Objekt mit der neuen Component-Klasse, die wir erstellt haben), und anschließend eine neue "Default.cshtml"-Datei, der Code ist wie folgt:
Die Struktur ist wie folgt:
Der detaillierte Pfad lautet: /Views/Shared/Components/RootClassification/Default.cshtml
Warum einen solchen Weg bauen? Das hängt damit zusammen, wie die asp.net Core-Komponente funktioniert.
Die Laufzeit sucht die Ansicht auf folgendem Pfad:
/Views/{Controller Name}/Components/{View Component Name}/{View Name}
/Views/Shared/Components/{View Component Name}/{View Name}
/Pages/Shared/Components/{View Component Name}/{View Name} Der Standard-Ansichtsname für die Ansichtskomponente ist Default, was bedeutet, dass Ihre Ansichtsdatei normalerweise Default.cshtml heißt. Beim Erstellen eines Ansichtskomponenten-Ergebnisses oder beim Aufrufen einer View-Methode können Sie einen anderen Ansichtsnamen angeben.
Wenn wir aufrufen, können wir dort aufrufen, wo wir die Komponente verwenden müssen, der Code ist wie folgt:
Das Projekt wird mit folgender Darstellung erneut ausgeführt:
|
Punktzahl
-
Alle Bewertungen sehen
Vorhergehend:EF Core Series (3) Entity Frame Schattenattribute [Nachdruck]Nächster:Die Website verwendet das Swiper-Plugin, um eine Bild-Diashow (Karussell) zu implementieren
|