Kun suuri määrä sivuja kutsuu samaa näkymän tulosta, voimme kapseloida saman sisällön näkymäkomponenttiin, tietenkin voimme myös välittää parametreja näkymäkomponentille ja palauttaa vastauksen, skenaariot: tulostaulut, lomakkeet, taulukot jne., tässä artikkelissa käytetään asp.net ydintä 3.1 selittääkseen, miten ViewComponent -näkymäkomponenttiohjetta käytetään.
Katso komponentit
Näkymäkomponentti muistuttaa paikallista näkymää, mutta on tehokkaampi. Näkymäkomponentti ei käytä mallin sidoksia, vaan perustuu vain mallin kutsumisen yhteydessä annettuun dataan. Tämä artikkeli on kirjoitettu ohjaimilla ja näkymillä, mutta näkymäkomponenttia voi käyttää myös Razor Pagesin kanssa.
Katso komponentit:
- Renderöi lohkoja koko vastauksen sijaan.
- Sisältää saman huolenaiheiden ja testattavuuden erottelun kuin ohjaajien ja näkymien välillä.
- Siinä voi olla parametreja ja liiketoimintalogiikkaa.
- Yleensä kutsutaan asettelusivulta.
Näkymäkomponentteja voidaan käyttää missä tahansa, missä on uudelleenkäytettävä renderöintilogiikka, joka on liian monimutkainen paikalliseen näkymään, kuten:
- Dynaaminen navigointivalikko
- Tag-pilvi (jossa tietokantaa haetaan)
- Kirjautumispaneeli
- Ostoskärry
- Äskettäin julkaistut artikkelit
- Sivupalkin sisältö tyypillisessä blogissa
- Kirjautumispaneeli ilmestyy jokaiselle sivulle, jossa on linkki uloskirjautumiseen tai sisäänkirjautumiseen käyttäjän kirjautumistilan mukaan
Osittainen näkymä
asp.net MVC 5:ssä voimme käyttää paikallista näkymää seuraavalla koodilla:
Kutsumenetelmä:
ViewComponent on vaihtoehto paikallisille näkymille.
ViewComponent aloittaaksesi
Katso komponenttiluokka:
- Konstruktoririippuvuuden injektio on täysin tuettu
- Ei osallistu ohjaimen elinkaareen, mikä tarkoittaa, ettei suodattimia voi käyttää näkymäkomponenteissa
- Ilman sen pidempiä puheita mennään suoraan siihen kohtaan, jossa haluamme tiivistää kaupunkialueiden luokittelun komponenttitoiminnallisuuden.
Luo ensin uusi "ViewComponents"-kansio projektihakemiston alle ja luo uusi "RootClassification.cs"-luokkatiedosto seuraavalla koodilla:
Näkymäsivulla luomme uuden "Components"-kansion projektin "/Views/Shared"-kansion alle, sitten luomme uuden "RootClassification"-kansion (tämä on objekti, jonka uusi komponenttiluokka on luomaamme), ja lopuksi luomme uuden "Default.cshtml"-tiedoston, koodi on seuraava:
Rakenne on seuraava:
Yksityiskohtainen polku on: /Views/Shared/Components/RootClassification/Default.cshtml
Miksi rakentaa tällainen polku? Tämä liittyy siihen, miten asp.net Core -komponentti toimii.
Ajontime etsii näkymää seuraavalta polulta:
/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} Näkymäkomponentin oletusnäkymän nimi on Default, mikä tarkoittaa, että näkymätiedostosi nimi on yleensä Default.cshtml. Kun luot näkymäkomponenttituloksen tai kutsut View-metodia, voit määrittää toisen näkymän nimen.
Kutsuttaessa voimme kutsua sinne, missä komponenttia tarvitaan, koodi on seuraava:
Suorita projekti uudelleen seuraavalla renderöinnillä:
|