Selles artiklis tutvustame Razor View importi. Lisaks ViewStart failile on olemas ka ViewImports fail, mida MVC raamistik otsib iga vaate renderdamisel.
Nagu ViewStart faili puhul, saame lohistada ja jätta ViewImports.cshtml kausta, ViewImports fail võib mõjutada kõiki vaateid kaustahierarhias
See vaade on uus vaade selle MVC versiooni jaoks, varasemates MVC versioonides saime XML-konfiguratsioonifaile kasutada teatud Razor view mootori aspektide seadistamiseks.
Need XML-failid on nüüd kadunud ja me kasutame selle asemel koodi.
ViewImports fail on koht, kus saame kirjutada koodi ja paigutada üldisi käske, et tuua oma vaadete jaoks vajalikku nimeruumi.
Kui see on, siis tavaliselt kasutame oma vaates nimeruumi, saame kasutada direktiivi ViewImports failis, kui ilmume, selle asemel et kasutada täisnimeruumi igas vaates või tüübis.
Näide
Võtame lihtsa näite, kuidas viia kasutusdirektiiv ViewImports'i. Indeksi vaates on kasutuskäsk, mis toob sisse nimeruumi FirstAppDemo.Controllers, nagu allolevas programmis näidatud.
Direktiivide kasutamine võimaldab Razori vaates genereeritud koodil korrektselt kompileerida. Ilma direktiive kasutamata ei suuda C# kompilaator seda töötaja tüüpi leida. Töötaja tüübi nägemiseks eemaldame Index.cshtml failist kasutusjuhise.
Nüüd käivita rakendus.
Näed vea, mis ütleb, et tüübi- või nimeruumi HomePageViewModel ei leita. Tõenäoliselt sellepärast, et mitmed teie vaated nõuavad sama direktiivi kasutamist. Seega loome vaate importimise Views kaustas, mitte ei pane seda igasse vaatesse. See lisab igale vaatele kasutuslause, lihtsalt tee paremklõpsa Views kaustal ja vali Lisa→uus üksus.
Keskmisel paneelil vali MVC Impordi vaade leht. Vaikimisi on nimi _ViewImports.cshtml. Nagu ViewStartis, ei saa me seda faili HTML-i renderdamiseks kasutada, seega vajutame nuppu Lisa.
Nüüd lisa selle kasutamise direktiiv _ViewImports.cshtml faili, nagu allpool näidatud.
Nüüd saavad kõik selles kaustas või mõnes alamkaustas kuvatavad vaated kasutada FirstAppDemo.Controllers tüüpi ilma täpse kasutamise lauseta. Käivitame su rakenduse uuesti ja näed, et vaade töötab nüüd.
|