V tomto článku představíme Razor View Import. Kromě souboru ViewStart existuje také soubor ViewImports, který MVC framework hledá při vykreslování jakéhokoli pohledu.
Stejně jako u souboru ViewStart můžeme do složky přetáhnout a pustit ViewImports.cshtml, soubor ViewImports může ovlivnit všechny pohledy v hierarchii složek
Tento pohled je nový pro tuto verzi MVC, v předchozích verzích MVC jsme mohli použít XML konfigurační soubory k nakonfigurování určitých aspektů Razor view engine.
Tyto XML soubory už neexistují a používáme kód.
Soubor ViewImports je místo, kde můžeme psát kód a umisťovat obecné instrukce, abychom získali potřebný jmenný prostor pro naše pohledy.
Pokud ano, obvykle používáme jmenný prostor v našem pohledu, můžeme použít direktivu v souboru ViewImports, jakmile se zobrazí, místo abychom používali celý jmenný prostor v každém pohledu nebo typu typu.
Příklad
Vezměme jednoduchý příklad, jak přesunout direktivu using do ViewImports. V zobrazení Index máme příkaz using pro načtení jmenného prostoru FirstAppDemo.Controllers, jak je ukázáno v programu níže.
Použití direktiv umožní správně kompilovat kód generovaný v Razor zobrazení. Bez použití direktiv nebude kompilátor C# schopen najít tento typ zaměstnance. Pro zobrazení typu zaměstnance odstraňte direktivu using ze souboru Index.cshtml.
Teď spusťte aplikaci.
Zobrazí se chyba, že typ nebo jmenný prostor HomePageViewModel nelze najít. Pravděpodobně proto, že několik vašich pohledů vyžaduje stejnou direktivu použití. Takže pojďme vytvořit import View ve složce Views místo toho, abychom ho dávali do každého pohledu. To přidá příkaz using ke každému zobrazení, stačí kliknout pravým tlačítkem na složku Views a vybrat Přidat→novou položku.
Ve středním panelu vyberte stránku MVC View Import. Ve výchozím nastavení je název _ViewImports.cshtml. Stejně jako u ViewStart nemůžeme tento soubor použít k vykreslování HTML, takže klikněme na tlačítko Přidat.
Nyní přidejte direktivu using z tohoto do souboru _ViewImports.cshtml, jak je uvedeno níže.
Nyní všechny pohledy zobrazené v této složce nebo jakékoli podsložce mohou používat typ v FirstAppDemo.Controllers bez specifikace přesného příkazu používat. Spustíme aplikaci znovu a uvidíte, že ten pohled je nyní spuštěný.
|