TOC

This article has been localized into Spanish by the community.

Views (vistas):

View Discovery (Descubrimiento de vistas) Conectando el Controller y View

En el inicio de este tutorial, demostre como un Controller puede regresar un View simplemente llamando el método View(). Esto incluso funciona sin parámetros, así que en este punto, te preguntarás como un Controller sabe exactamente cuales de tus Views regresar para un Action o acción en específico. La respuesta es algo llamado View Discovery (Descubrimiento de vistas) - un proceso donde ASP .NET MVC intenta suponer cual View usar, sin forzarte a especificarlo.

View Discovery trabaja cuando sigues ciertas convenciones cuando creas tu estructura de proyecto. Ya hemos hablado sobre esto previamente en este tutorial, donde siempre ponemos Controllers en una carpeta llamada "Controllers", Models en una carpeta llamada "Models" y así seguimos. Con los Viees, debes colocarlos en una subcarpeta llamado según el Controller y el nombre del archivo del View debe coincidir con el Action o acción. Así que por ejemplo, sí tienes un Controller llamado "ProductController", con una acción llamada "Details", tu estructura de proyecto debería verse así:

En otras palabras, la locación y nombramiento de tus vistas debe seguir esta convención.

/Views/[nombre de Controller ]/[nombre de Action].cshtml

Sí así es, puedes simplemente llamara el método View() de tus actions del Controller y dejar que el framework .NET localice automáticamente el View apropiado para ti:

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

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

Sí el framework no puede encontrar un View relacionado usando la convención mencionada arriba, buscará en un lugar mas:

/Views/Shared/[Nombre de Action].cshtml

La carpeta Shared, en la cual puedes agregar tus carpetas de vistas, es usada usualmente para archivos Layout y partial views compartidas por múltiples controllers. Discutiremos esto luego, pero por ahora, la forma mas fácil es seguir la convención de estructura de carpetas descrita arriba.

Especificando un View

Sí no puedes (o no quieres) seguir la convención, puedes ayudar al framework a localizar la Vista correspondiente proveyendo un parámetro al método View(). Hay dos formas: Puedes especificar solo el nombre, el cual aun requiere que sigas la convención de la estructura de carpetas, pero proveer un View con otro nombre (míralo como un alias) como esto:

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

O puedes definir la ruta completa, el cual te da la flexibilidad total cuando creas tu estructura de proyecto:

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

Resumen

Sí sigues la convención especifica cuando creas tu estructura de proyecto, View Discovery le permitirá a tus Controllers automáticamente encontrar un View relacionado basado en el nombre del Controller y el Action. Sí no quieres seguir esta convención, puedes fácilmente regresar un View especifico pasando su ruta y/o nombre al método View().

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!