Tässä artikkelissa esittelemme Razor View Importin. ViewStart-tiedoston lisäksi MVC-kehys etsii myös ViewImports-tiedostoa renderöidessä minkä tahansa näkymän.
Kuten ViewStart-tiedostossa, voimme vetää ja pudottaa ViewImports.cshtml -tiedoston kansioon, ja ViewImports-tiedosto voi vaikuttaa kaikkiin kansiohierarkian näkymiin.
Tämä näkymä on uusi näkymä tälle MVC-versiolle; aiemmissa MVC-versioissa voitiin käyttää XML-konfiguraatiotiedostoja Razor-näkymämoottorin tiettyjen osien konfigurointiin.
Nuo XML-tiedostot ovat nyt poissa, ja käytämme koodia sen sijaan.
ViewImports-tiedosto on paikka, jossa voimme kirjoittaa koodia ja sijoittaa yleisiä käskyjä, jotka tuovat näkyviin tarvittavan nimiavaruuden.
Jos on, käytämme yleensä näkymän nimiavaruutta, voimme käyttää ViewImports-tiedoston direktiiviä ilmestyessämme, sen sijaan että käyttäisimme koko nimiavaruutta jokaisessa näkymässä tai tyyppityyppissä.
Esimerkki
Otetaan yksinkertainen esimerkki siitä, miten using -direktiivi siirretään ViewImportsiin. Indeksi-näkymässä meillä on käyttäjäkomento, jolla tuodaan nimiavaruus FirstAppDemo.Controllers, kuten alla olevassa ohjelmassa on esitetty.
Käskyjen käyttö mahdollistaa Razor-näkymästä luodun koodin kääntämisen oikein. Ilman direktiivien käyttöä C#-kääntäjä ei pysty löytämään tätä työntekijätyyppiä. Nähdäksesi työntekijätyypin, poistetaan using -käsky Index.cshtml-tiedostosta.
Nyt käynnistä sovellus.
Näet virheen, jossa kerrotaan, että HomePageViewModelin tyyppi- tai nimiavaruutta ei löydy. Luultavasti siksi, että useat näkemyksesi vaativat saman ohjeistuksen. Luodaan siis näkymän tuonti Näkymät-kansioon sen sijaan, että laittaisimme sen jokaiseen näkymään. Tämä lisää käyttölauseen jokaiseen näkymään, klikkaa vain oikealla Näkymät-kansiota ja valitse Lisää→uusi kohde.
Keskimmäisestä ruudusta valitse MVC View Imports -sivu. Oletuksena nimi on _ViewImports.cshtml. Aivan kuten ViewStartissa, emme voi käyttää tätä tiedostoa HTML:n renderöintiin, joten painetaan Lisää-painiketta.
Lisää nyt käyttämiskäsky tästä _ViewImports.cshtml-tiedostoon, kuten alla on esitetty.
Nyt kaikki tässä kansiossa tai missä tahansa alikansiossa näkyvät näkymät voivat käyttää FirstAppDemo.Controllers-tyyppiä ilman tarkkaa käyttämislausetta. Käynnistetään sovellus uudelleen ja näet, että näkymä on nyt käynnissä.
|