Digamos que tengo la siguiente estructura en mi aplicación ASP.NET MVC 3.¿Por qué mi página .cshtml necesita definir contenido?
- Artículos
- Index.cshtml
- Categorías
- compartido
- _Index.cshtml
- _Site.cshtml
- Index.cshtml
Tanto Index.cshtml
archivos utilizan _Index.cshtml
como el diseño de página y _Index
está anidado dentro del diseño _Site
.
Items/Index
implementa las secciones opcionales definidas en _Index
. Shared/Index
está vacío.
La vista Items/Index
funciona bien. Dado que Categorías no tiene un índice, usa el de la carpeta compartida. Esto no funciona.
que arroja el error
El método "RenderBody" no ha sido llamado para diseño de página "~/Views/Shared/_Index.cshtml".
If _Site
llamadas RenderBody
y _Index
hereda de _Site
, no el contenido en _Index
satisfacer la requerida RenderBody
llamada y Shared/Index.cshtml
puede estar en blanco?
La razón por la que pregunto es porque tengo una aplicación ASP.NET MVC 1 que implementó esta estructura usando páginas maestras y funcionó bien, pero la conversión a MVC 3 con Razor está causando este problema.
Aquí es el esquema básico de lo que estoy describiendo:
_Site.cshtml
<!DOCTYPE html>
// head
<body>
@RenderBody()
</body>
_Index.cshtml
@{
Layout = "~/Views/Shared/_Site.cshtml";
}
<div id="sub-menu">
// Markup
</div>
// More markup
@RenderSection("SectionOne", required: false)
@RenderSection("SectionTwo", required: false)
Artículos/Index.cshtml (Trabajo)
@{
Layout = "~/Views/Shared/_Index.cshtml";
}
@section SectionOne {
// Markup
}
Compartido /Index.cshtml (error RenderBody)
@{
Layout = "~/Views/Shared/_Index.cshtml";
}
// Rest of this file is empty
Mi _Index.cshtml no llama a @RenderBody embargo. _Index solo implementa las secciones de _Site, y define algunas nuevas. Luego Item/Index implementa algunas de las secciones _Index. Eso es. – Brandon
@Brandon - Tal vez sería útil incluir algún código cshtml básico que ilustrara, porque simplemente no entiendo lo que está describiendo. –
pregunta actualizada. Tal vez no estoy implementando páginas anidadas correctamente, pero eso es básicamente su estructura. – Brandon