Parece que la manera de hacerlo es usando un archivo _init.cshtml en la raíz del directorio de visualización en el que desea una página común elemento (encabezado). Cuando el motor de vista Razor construye su página, busca algunos archivos específicos llamados automáticamente _start.cshtml, _init.cshtml y _end.cshtml; estos archivos son cargados en el orden respectivo por el motor de vista para cada solicitud. Colocar la definición de LayoutPage y/u otras operaciones de inicialización comunes en estos archivos asegurará que se ejecuten para todas las páginas.
Nota: No estoy seguro de si el efecto se transmite a los subdirectorios, ya que no estaba claro en la documentación; tendrás que probarlo y descubrirlo.
Hay mucha información más detallada sobre cómo hacer esto en el libro de instrucciones de Microsoft sobre cómo compilar páginas con Razor. Encontré la sección Ejecutando código antes y después de los archivos en una carpeta en la página 169. Consulte este Microsoft download page para obtener el libro completo, así como muestras adicionales de Razor.
La segunda respuesta aquí debe marcarse como la respuesta aceptada para el beneficio del resto de la comunidad, por favor. – Brondahl