He estado leyendo acerca de los diseños, secciones, vistas y vistas parciales, pero no se sabe muy bien cómo abordar un diseño como este ejemplo:¿Cómo diseñar una página con MVC3 Razor?
Barra superior: sería como la barra que Facebook tiene en la parte superior. Contendría la información de autenticación y opciones generales y menús.
Barra de navegación: contendría información sobre dónde está usted, y donde puede ir. También una caja de "búsqueda" .
Cuerpo: La información real deseada.
Barra lateral: contendría información relevante sobre lo que está en el cuerpo .
Pie de página: copyright, licencia y cosas como .
cuerpo sería una "Vista", la barra lateral sería una "sección", pie de página sería HTML estático en el "Diseño", pero ... ¿qué sería Top bar y Navegación?
Barra superior no está relacionada con cualquier cosa, así que lo pondría como "Vista parcial" en el "Diseño", pero no puede hacerlo porque tiene que estar dentro de la <body>
de todos modos, así que cuando me llamo @RenderBody()
, se debe representar. Lo mismo con Navigation, de alguna manera está relacionado con el cuerpo, pero me gustaría separarlo como un control externo que funciona por sí mismo y muestra información según la información en la URL.
¿Cómo debo abordar esto?
actualización, por favor lea: La pregunta no es acerca de CSS y HTML, no se trata de como se distribuyen, pero el uso de las herramientas de afeitar para hacerlo, se trata de la maquinilla de afeitar RenderBody
y PartialView
.
Cuando devuelvo un resultado de mi controlador, quiero devolver solo lo que está marcado en la imagen como "cuerpo" y "barra lateral" como una sección, me gustaría evitar repetir el código de barras superior. ¿Hay alguna manera de crear un "ChildView", que hereda de "ParentView", y esto desde "Diseño", de forma que cuando devuelvo "Ver (" ChildView ") la pantalla se construye automáticamente?
Ok, ahora lo veo claro gracias a su ejemplo. @RenderBody no es solo para renderizar la etiqueta
, sino que representa la vista secundaria principal, por lo que puedo codificar el cuerpo en html, colocar PartialViews donde quiera y representar el área llena de blanco en el ejemplo con RenderBody. – vtortola