Empezando con layout

La   idea  es  generar   un estilo  predefinido  para  nuestro  proyecto  web, en  el cual utilizaremos unas plantillas genéricas que se aplicaran a todas nuestras páginas.

El concepto de section se refiere a que estos estilos predefinidos  podemos variarlos en distintos puntos a nuestro interés, y para que tomen otros formatos o realicen otras funciones. Vamos a explicar paso a paso estos conceptos en un proyecto nuevo

-Abrimos nuevo proyecto solución (asp.net net framework) empty y seleccionamos la casilla MVC

-Una vez generado, nos situamos en el explorador de soluciones en la carpeta controller y añadimos con el botón derecho sobre esta un new controller. Lo llamamos como queramos manteniendo eso si la palabra reservada controller

En mi caso lo llamo Home, dejando como se ve la palabra Controller.

imagen


Esto nos genera una carpeta en las vistas llamadas Home que es de donde tira nuestro Controller

-Dentro de la carpeta generada agregamos una nueva vista. La llamaremos Index ya que será la primera que carguemos

ImagenIndex

-Al crear la vista Index en home también nos genera la carpeta Shared con el Layout que sería la plantilla genérica

Vamos nosotros a crear nuestra vista genérica llamado MiPlantilla

1ºimagen

-Al  mismo nivel que la carpeta  Shared  tenemos una vista llamada  ViewStart  la cual la tenemos que indicar que coja nuestra plantilla. Por defecto coge la de Layout porque es la plantilla genérica

2ºImagen

-Podemos hacer una prueba para ver que esta todo correcto y carga nuestra vista Index.

Escribimos en la vista MiPlantilla un texto

3ºImagen

necesitamos poner el @RenderBody en nuestra plantilla para que el Index pueda ser ejecutado

si no saltaría este error

4ºImagen


5ºImagen

Si todo va bien

Comprobado que funciona vamos a aplicar estilos a nuestra plantilla.

Aplicando Bootstrap

Lo primero será agregar a la carpeta Scripts las librerías, si no las tuviéramos ya por defecto o quisiéramos otras mas

Bootstrap.js es la que nos da los estilos. Los podemos bajar de la página de bootstrap jquery 3.3.1 es la que nos dará funcionalidad

6ºImagen

Para hacer una prueba con las plantillas de bootstrap accedemos en su web a los ejemplos https://getbootstrap.com/docs/4.1/examples/

Cogemos una plantilla cualquiera copiando su código fuente (botón derecho ver código fuente)

Así que lo pegaremos en nuestra plantilla, para dejarlo como diseño por defecto en nuestras vistas.

En cada código fuente de bootstrap tendremos que acceder a los css para copiarlos .

7ºImagen

En el ejemplo este, pinchamos en cover.css y nos lleva a los estilos

ImagenCover

Los copiamos todos y los pegamos en un nuevo css en Content y lo llamamos Starter-Template.css

9ºImagen

Aquí podemos tocar y variar el diseño de la plantilla de ejemplo

– En el código fuente tendremos que sustituir el enlace que vienen de css por nuestro starter- template y el script de bootstrap por el de nuestra boostrap.min en la carpeta Content.

10ºImagen


11ºImagen

Quedando así

Añadimos el @RenderBody();

Y quitamos todo el script del código y metemos los de nuestra carpeta scripts

10ºImagen

Ejecutamos el Índex y nos cargara la plantilla de Bootstrap

13ºImagen

Como explicamos antes, las vistas de nuestra página tendrán la plantilla por defecto que pusimos en ViewStart  ya sea la genérica que  viene  como “layout” o la que creemos como “MiPlantilla

Si quisiéramos utilizar estas u otras más en distintas vistas, tan solo tendremos que poner en la vista la ruta de la plantilla

@{

ViewBag.Title = «contacto»;

Layout = «~/Views/Shared/_Layout.cshtml»;

}

Creando Secciones

Por ahora nuestra plantilla solo tiene una sección que es la del body.Razor nos permite definir secciones en nuestra plantilla y poder mostrarlas en las vistas que queramos, manteniendo la plantilla por defecto

Voy  a poner en mi  plantilla una sección en el  footer para que nos muestre la hora.

Primero tendremos que poner un id al div del footer y declarar el RenderSection con este id

14ºImagen

Lo que estamos haciendo es pasar con el primer parámetro la zona que queremos renderizar, Y el segundo parámetro define que la sección no es requerida, pero siendo esto opcional.

En nuestra vista Index implementamos la sección.

Con @Section mas la id definida anteriormente, indicamos la parte que en esta vista se va a renderizar. Poniendo dentro de los corchetes la acción a mostrar, en nuestro caso la hora.

15ºImagen
16ºImagen

Quedando así

Información:

Autor/a: Sergio González Bargueño

Curso: Microsoft MCSA Web Applications + Microsoft MCSD App Builder + Xamarin 

Centro: Tajamar 

Año académico: 2018-2019 

Código / recursos utilizados / Otros datos de interés:  https://github.com/sergiogonbar/Post-Section-Layout

http://www.linkedin.com/in/sergio-gonzález-bargueño-3a7baa119

Leave a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.