V tem članku bomo predstavili Razor View Import. Poleg datoteke ViewStart obstaja tudi datoteka ViewImports, ki jo MVC ogrodje išče pri upodabljanju katerega koli pogleda.
Tako kot pri datoteki ViewStart lahko v mapo povlečemo in spustimo ViewImports.cshtml, datoteka ViewImports lahko vpliva na vse poglede v hierarhiji map
Ta pogled je nov za to različico MVC; v prejšnjih različicah MVC smo lahko uporabili XML konfiguracijske datoteke za konfiguracijo določenih vidikov Razor view engine.
Te XML datoteke so zdaj izginile in uporabljamo kodo.
Datoteka ViewImports je prostor, kjer lahko napišemo kodo in postavimo generična navodila, da pridobimo imenski prostor, ki ga potrebujemo za naše poglede.
Če obstaja, običajno uporabljamo imenski prostor v našem pogledu, lahko uporabimo direktivo v datoteki ViewImports, ko se pojavimo, namesto da uporabljamo celoten imenski prostor v vsakem pogledu ali vrsti tipa.
Primer
Vzemimo preprost primer, da vidimo, kako prenesti direktivo o uporabi v ViewImports. V pogledu Index imamo ukaz za uporabo prostora FirstAppDemo.Controllers, kot je prikazano v spodnjem programu.
Uporaba direktiv bo omogočila, da se koda, generirana v Razor pogledu, pravilno prevede. Brez uporabe direktiv prevajalnik C# ne bo mogel najti tega tipa zaposlenih. Da vidimo tip zaposlenega, odstranimo direktivo za uporabo iz datoteke Index.cshtml.
Zdaj zaženi aplikacijo.
Videli boste napako, da tip ali imenski prostor HomePageViewModel ni mogoče najti. Verjetno zato, ker več tvojih pogledov zahteva enako navodilo za uporabo. Torej, ustvarimo uvoz pogleda v mapo Pogledi, namesto da ga vključujemo v vsak pogled. To bo dodalo ukaz using v vsak pogled, samo desni klik na mapo Views in izberite Dodaj→nov element.
V srednjem oknu izberite stran MVC View Import. Privzeto je ime _ViewImports.cshtml. Tako kot pri ViewStart te datoteke ne moremo uporabiti za upodabljanje HTML-ja, zato pritisnimo gumb Dodaj.
Zdaj dodajte direktivo o uporabi iz tega v datoteko _ViewImports.cshtml, kot je prikazano spodaj.
Zdaj lahko vsi pogledi, prikazani v tej mapi ali kateri koli podmapi, uporabijo tip v FirstAppDemo.Controllers brez natančnega ukaza upotrebe. Poglejmo ponovno vašo aplikacijo in vidite, da pogled zdaj deluje.
|