martes, 15 de enero de 2019
Como sabemos, los archivos Razor
Es decir, si el archivo
Pues bien, hace unos días, un alumno del curso de ASP.NET Core en CampusMVP (que, por cierto, ha sido recientemente actualizado a la versión 2.2 del framework) planteaba una duda sobre un escenario algo más complejo. Si una aplicación tenía vistas en la carpeta
A priori pensé que quizás el planteamiento sería retocar ligeramente el motor de vistas, pero, tras estudiarlo un rato, vi que el tema era mucho más sencillo :)
Y es que, aunque no es algo muy intuitivo, resulta que los archivos
Por tanto, para introducir directivas o código de inicialización Razor de forma global para toda la aplicación, bastará con establecerlas en el raíz del proyecto.
En fin, son esos pequeños detalles que pueden venir bien en algunas ocasiones y es interesante conocer :)
Publicado en Variable not found.
_ViewImports.cshtml
y _ViewStart.cshtml
se emplean para introducir directivas y código de inicialización para todas las vistas o páginas que se encuentren por debajo en la estructura de carpetas del proyecto.Es decir, si el archivo
_ViewImports.cshtml
se encuentra en la carpeta /Views
, todas las vistas que hay por debajo heredarán las directivas que hayamos especificado en su interior, de la misma forma que /Pages/_ViewImports.cshtml
afectara a las páginas presentes en la carpeta /Pages
y descendientes.Pues bien, hace unos días, un alumno del curso de ASP.NET Core en CampusMVP (que, por cierto, ha sido recientemente actualizado a la versión 2.2 del framework) planteaba una duda sobre un escenario algo más complejo. Si una aplicación tenía vistas en la carpeta
/Views
, también tenía vistas en áreas (carpeta /Areas
), e incluso pudiera tener algunas páginas Razor en /Pages
, la pregunta era si existía algún mecanismo para hacer que todas las vistas o páginas definidas en dichas carpetas compartieran directivas (como using
o importaciones de tag helpers) sin tener que duplicar este código en sus respectivos _ViewImports.cshtml
para cada una de ellas.A priori pensé que quizás el planteamiento sería retocar ligeramente el motor de vistas, pero, tras estudiarlo un rato, vi que el tema era mucho más sencillo :)
Y es que, aunque no es algo muy intuitivo, resulta que los archivos
_ViewImports.cshtml
y _ViewStart.cshtml
son procesados comenzando por el directorio raíz del proyecto, y no desde carpetas específicas para vistas, como podría suponerse. Es decir, si se fuera a compilar una vista en /Areas/Dashboard/Views/Home/Index.cshtml
, el framework incluirá en ella, sucesivamente, las directivas que encuentre en:/_ViewImports.cshtml
(la carpeta raíz del proyecto)/Areas/_ViewImports.cshtml
/Areas/Dashboard/_ViewImports.cshtml
/Areas/Dashboard/Views/_ViewImports.cshtml
/Areas/Dashboard/Views/Home/_ViewImports.cshtml
_ViewStart.cshtml
.Por tanto, para introducir directivas o código de inicialización Razor de forma global para toda la aplicación, bastará con establecerlas en el raíz del proyecto.
En fin, son esos pequeños detalles que pueden venir bien en algunas ocasiones y es interesante conocer :)
Publicado en Variable not found.
Aún no hay comentarios, ¡sé el primero!
Enviar un nuevo comentario