2011-08-11 18 views
8

Tengo una aplicación web a la que MVC3 quiero empezar a utilizar vistas completas de afeitar.Razor diseño no funciona si el archivo se llama _ViewStart.cshtml

mayor parte del sitio está trabajando muy bien con un Site.Master así que hemos empaquetado la mayor parte de ella en vistas parciales y estoy tratando de agregar una distribución con el mismo contenido.

Después de leer el blog de Scott Gu, he agregado un archivo llamado _ViewStart.cshtml en mi directorio ~/Views para que se aplique de manera predeterminada.

Desafortunadamente esto me da el error:

The name 'RenderBody' does not exist in the current context

Si el archivo se llama _viewstart.cshtml.

Si se llama _layoutviewstart.cshtml que va a funcionar, pero tengo que hacer referencia a ella directamente en la vista.

Si se llama _billyviewstart.cshtml es obra pero de nuevo tengo que hacer referencia a ella directamente en la vista.

+0

Site.Master? ¿Estás tratando de convertir un sitio existente? Probablemente haya cambios de configuración requeridos que no tiene. – Tridus

+0

hola, utilizamos la vista puesta a disposición por defecto definido, diseño predeterminado definido será permanecer en la carpeta compartida. por supuesto, debe tener @RenderBody(). –

Respuesta

11

Ver empezar

@{ 
    Layout = "~/Views/Shared/_Layout.cshtml"; 
} 

Layout.cshtml

<!DOCTYPE html> 
<html> 
<body> 
    @RenderBody() 
</body> 
</html> 
+1

¡Soy un idiota, gracias! ¡Lo aceptaré tan pronto como me lo permita! – Stu

+1

no! asegúrate de que no lo estés :) siempre nos preguntamos que renderbody cuando comenzamos MVC3 después de la página maestra de ASP.NET. –

+0

su _Layout.cshtml de enlace, por lo Actualizar el nombre del archivo desde Layout.cshtml a _Layout.cshtml –

Cuestiones relacionadas