vistas sintaxis pagina mvc multiples misma razor asp.net-mvc-3

sintaxis - ¿Forma correcta de usar_viewstart.cshtml y vistas de Razor parciales?



razor mvc (1)

Estoy usando _viewstart.cshtml para asignar automágicamente el mismo diseño de Razor a mis vistas.

Es un archivo muerto simple en la raíz de mi carpeta Vistas que se ve así:

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

Esto es más SECO que agregar la directiva @Layout a cada vista.

Sin embargo, esto plantea un problema para las vistas parciales de Razor, ya que ejecutan el contenido de _viewstart.cshtml y, por lo tanto, se asignan un diseño incorrectamente, lo que hace que, um, ya no sean parciales.

Aquí hay un proyecto hipotético que muestra el archivo _viewstart.cshtml, el archivo _layout.shtml compartido y una vista parcial ("AnonBar.cshtml").

Actualmente, la forma en que lo soluciono es agregando la siguiente línea a cada vista parcial:

@{ Layout = ""; }

Parece una forma incorrecta de indicar una vista como parcial en Razor. (Tenga en cuenta que, a diferencia del motor de vista de formularios web, la extensión de archivo es la misma para vistas parciales).

Otras opciones que consideré pero que son aún peores:

  • Colocando todas las vistas parciales en una carpeta común, para que puedan compartir un _viewstart.cshtml común. Esto rompe la convención de que las vistas están en la misma carpeta que su controlador.
  • No usar vistas parciales.

¿Esto es algo que todavía está siendo desarrollado por el equipo Razor view engine, o me está faltando un concepto fundamental?


Si return PartialView() desde sus controladores (en lugar de return View() ), entonces _viewstart.cshtml no se ejecutará.