Amikor sok oldal ugyanazt a nézet eredményt hívja, ugyanazt a tartalmat be tudjuk kapsuálni egy nézetkomponensbe, természetesen paramétereket is átadhatunk a nézet komponensnek, és visszaadhatjuk a válaszeredményt, forgatókönyvek: rangtáblák, űrlapok, táblázatok stb., ez a cikk asp.net 3.1-es mag segítségével magyarázza, hogyan lehet használni a ViewComponent komponens oktatóanyagot.
Nézze meg az összetevőket
A View komponens hasonló a helyi nézethez, de erősebb. A view komponens nem használ modellkötéseket, csak a modell hívásakor megadott adatokra támaszkodik. Ez a cikk kontrollerekkel és nézetekkel készült, de a nézet komponens használható a Razor Pages-szel is.
Tekintse meg az összetevőket:
- Renderelj blokkokat a teljes válasz helyett.
- Ugyanazt a problémákat és tesztelőségi előnyöket tartalmazza, mint a vezérlők és nézetek között.
- Lehetnek paraméterei és üzleti logikája.
- Általában az oldalról hívják.
A view komponensek bárhol használhatók, ahol újrahasználható renderelési logika van, ami túl bonyolult egy helyi nézethez, például:
- Dinamikus navigációs menü
- Tag cloud (ahol az adatbázist lekérdezik)
- Bejelentkezési panel
- Bevásárlókocsi
- Nemrég megjelent cikkek
- Oldalsáv tartalma egy tipikus blogon
- A bejelentkezési panel minden oldalon megjelenik, és egy linkkel a kijelentkezéshez vagy bejelentkezéshez, a felhasználó bejelentkezési státuszától függően
Részleges nézet
asp.net MVC 5-ben helyi nézetet használhatunk a következő kóddal:
Hívási módszer:
A ViewComponent alternatíva a helyi nézetekkel szemben.
ViewComponent a kezdéshez
Tekintse meg az összetevő osztályt:
- A konstruktor függőségi injekció teljes mértékben támogatott
- Nem kapcsolódik a vezérlő életciklusához, ami azt jelenti, hogy nem használhatod a szűrőket a nézeti komponensekben
- Tovább nem beszélgetve, térjünk rá a pontra, ahol be akarjuk foglalni egy városi terület osztályozás komponensfunkcióját.
Először hozz létre egy új "ViewComponents" mappát a projektkönyvtárban, és hozz létre egy új "RootClassification.cs" osztályfájlt a következő kóddal:
A megtekintési oldalon létrehozunk egy új "Components" mappát a projekt "/Views/Shared" mappája alatt, majd létrehozunk egy új "RootClassification" mappát (ez az objektum az új komponensosztályhoz), majd létrehozunk egy új "Default.cshtml" fájlt, a kód a következő:
A szerkezet a következő:
A részletes út: /Views/Shared/Components/RootClassification/Default.cshtml
Miért építenek ilyen ösvényt? Ez összefügg azzal, hogyan működik a asp.net Core komponens.
A runtime a következő útvonalon keresi a nézetet:
/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} A view komponens alapértelmezett nézetneve Default, ami azt jelenti, hogy a view fájl általában Default.cshtml nevet kap. Amikor view komponens eredményt hoznak létre vagy View metódust hívnak, megadhatsz egy másik nézet nevet.
Hívással ott hívhatunk, ahol a komponenst kell használnunk, a kód a következő:
Indítsd újra a projektet a következő rendereléssel:
|