TOC

This article has been localized into Hungarian by the community.

Nézetek:

View Discovery: vezérlő és nézet összekötése

A tanfolyam elején bemutattam, hogyan tud egy vezérlő nézetet visszatéríteni, pusztán a View() metódus segítségével. Ez működik paraméterek nélkül is, ezért gondolkozhatsz azon, hogyan is tudja a vezérlő, pontosan melyik nézetet kell egy bizonyos akcióval visszatéríteni. A válasz az úgynevezett View Discoveryben rejlik - ez egy folyamat, amellyel az ASP.NET MVC megpróbálja megtalálni a megfelelő nézetet anélkül, hogy neked kifejezetten meg kellene adnod azt.

A View Discovery akkor működik, ha bizonyos szabályokat betartasz a projektstruktúrában. Már beszéltünk erről korábban, amikor a vezérlőket mindig "Controllers" nevű könyvtárba tettük, modelleket pedig "Models"-be. A nézetek viszont a vezérlő után elnevezett alkönyvtárba kerülnek, nevük pedig a hozzájuk kapcsolódó akcióval kell egyezzen. Tehát ha van például egy "ProductController" nevű vezérlőd, amiben van egy "Details" nevű akciód, akkor a könyvtárstruktúrának így kell kinéznie:

Rövidebben fogalmazva, nézeteid helye és neve ezt a mintát kell kövesse:

/Views/[vezérlő neve]/[akció neve].cshtml

Ha így van, akkor csupán a View() metódust kell a vezérlőakcióidban használnod és a .NET keretrendszer automatikusan megtalálja a megfelelő nézetet:

public class ProductController : Controller
{
public IActionResult Index()
{
    return View();
}

public IActionResult Details()
{
return View();
}
}

Ha a keretrendszer nem találja a nézetet a fenti módszer szerint, akkor még egy helyen megpróbálja megtalálni azt:

/Views/Shared/[akció neve].cshtml

A Shared könyvtár, amit hozzátehetsz a View könyvtáradhoz, általában elrendezési fájlok és több vezérlő által használt, részleges nézetek tárolására szolgál. Ezt később alaposabban megtárgyaljuk, de egyelőre a legegyszerűbb, ha a fenti szabályokat követed.

Nézet megadása

Ha nem tudod (vagy akarod) ezeket a szabályokat követni, akkor segíthetsz a keretrendszernek a megfelelő nézet megtalálásában azzal, hogy paramétert adsz a View() metódusnak. Ennek két módja van: az egyik, hogy csak a nevet adod meg, amivel ugyanúgy követned kell a könyvtárstruktúra szabályait, viszont bármilyen nevet megadhatsz, így:

public IActionResult Test()
{
return View("Details");
}

A másik, hogy az egész útvonalat megadod, amivel bármilyen projektstruktúrát használhatsz:

public IActionResult Test()
{
return View("/ViewFolderName/SomeFolderName/ViewName.cshtml");
}

Összefoglaló

Ha egy bizonyos szabályrendszert követsz a projektstruktúrád megalkotásakor, akkor a View Discovery lehetővé teszi vezérlőid számára, hogy automatikusan megtalálják a megfelelő nézetet a vezérlő és az akció nevei alapján. Ha nem követed ezeket a szabályokat, akkor könnyedén megadhatod a nézet nevét és/vagy elérési útvonalát a View() metódusnak.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!