_Layout.cshtml - .NET MVC RAZOR

Cuando empezamos un proyecto web en .NET MVC, y comenzamos a diseñar nuestras vistas debemos saber que es el _Layout.

De una manera sencilla, el _Layout es una página maestra (Padre) de la cual descienden todas las vistas (Hijos) que deseemos.

Si por ejemplo, queremos que el header y footer aparezcan en nuestras todas nuestras vistas, no es necesario copiar y pegar en cada una de ellas.  Para ello, declaramos nuestro header y footer en el _Layout y creamos nuestras vistas utilizando de página maestra al _Layout.

Por ejemplo:

<!DOCTYPE html>
<html lang="es">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8" />
    <title>@ViewBag.Title - Mi aplicación ASP.NET MVC</title>
    <link href="~/favicon.ico" rel="shortcut icon" type="image/x-icon" />
    <link href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet">
    <meta name="viewport" content="width=device-width" />
</head>
<body>
    <div id="header">
        <h3>Mi aplicación .NET MVC</h3>
    </div>
    <div id="body">
        <div class="content-wrapper main-content clear-fix">
            @RenderBody()
        </div>
    </div>
    <div id="footer">
        <div class="content-wrapper">
            <div class="float-left">
                <p>&copy; @DateTime.Now.Year - Mi aplicación ASP.NET MVC</p>
            </div>
        </div>
    </div>
</body>
</html>


Como podemos ver, tenemos nuestro _Layout con el header, body y footer.

Ahora... En que parte del _Layout se hace referencia al contenido de nuestras vistas? En @RenderBody()

Al cargar una vista por pantalla, el _Layout siempre tendrá fijo el header y el footer, mientras que el body irá cambiando según la vista que se muestre a través del @RenderBody()