Når et stort antall sider kaller samme visningsresultat, kan vi kapsle inn det samme innholdet i en visningskomponent, selvfølgelig kan vi også sende parametere til visningskomponenten og returnere responsresultatet, scenarier: topplister, skjemaer, tabeller osv., denne artikkelen bruker asp.net kjerne 3.1 for å forklare hvordan man bruker ViewComponent visningskomponentveiledningen.
Vis komponenter
View-komponenten ligner på en lokal visning, men er kraftigere. Visningskomponenten bruker ikke modellbindinger, men baserer seg kun på dataene som gis når modellen kalles opp. Denne artikkelen er skrevet ved bruk av kontrollere og visninger, men visningskomponenten kan også brukes med Razor Pages.
Se komponenter:
- Render blokker i stedet for hele responsen.
- Inkluderer samme separasjon av bekymringer og testbarhetsfordeler som finnes mellom kontrollører og synspunkter.
- Den kan ha parametere og forretningslogikk.
- Vanligvis kalles det fra layoutsiden.
View-komponenter kan brukes hvor som helst hvor du har gjenbrukbar renderingslogikk som er for kompleks for en lokal visning, for eksempel:
- Dynamisk navigasjonsmeny
- Tag Cloud (der databasen blir spørret)
- Innloggingspanel
- Handlevogn
- Nylig publiserte artikler
- Innhold i sidepanelet på en typisk blogg
- Innloggingspanelet vil vises på hver side med en lenke for å logge ut eller inn, avhengig av brukerens innloggingsstatus
Delvis oversikt
I asp.net MVC 5 kan vi bruke en lokal visning med følgende kode:
Kallemetoden:
ViewComponent er et alternativ til lokale synspunkter.
ViewComponent for å komme i gang
Vis komponentklasse:
- Konstruktøravhengighetsinjeksjon er fullt støttet
- Ikke involvert i kontrollerens livssyklus, noe som betyr at du ikke kan bruke filtre i visningskomponenter
- Uten videre om og men, la oss gå rett til punktet hvor vi ønsker å oppsummere komponentfunksjonaliteten i en klassifisering av urbane områder.
Først oppretter du en ny "ViewComponents"-mappe under prosjektmappen og lager en ny "RootClassification.cs"-klassefil med følgende kode:
På visningssiden oppretter vi en ny "Components"-mappe under "/Views/Shared"-mappen i prosjektet, deretter oppretter vi en ny "RootClassification"-mappe (dette er objektet med den nye komponentklassen vi har laget), og lager deretter en ny "Default.cshtml"-fil, koden er som følger:
Strukturen er som følger:
Den detaljerte stien er: /Views/Shared/Components/RootClassification/Default.cshtml
Hvorfor bygge en slik sti? Dette har å gjøre med hvordan asp.net Core-komponenten fungerer.
Kjøretiden søker etter visningen i følgende sti:
/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} Standardvisningsnavnet for visningskomponenten er Default, noe som betyr at visningsfilen din vanligvis heter Default.cshtml. Når du lager et visningskomponentresultat eller kaller en View-metode, kan du spesifisere et annet visningsnavn.
Ved å kalle kan vi kalle der vi trenger å bruke komponenten, koden er som følger:
Kjør prosjektet på nytt med følgende rendering:
|