Razor Diseños anidados con secciones en cascada

Tengo un sitio MVC3 que usa Razor como motor de visualización. Quiero que mi sitio sea personalizable. La mayoría de las máscaras posibles son lo suficientemente similares que pueden derivar de un diseño maestro compartido.

Por lo tanto, estoy considerando este diseño:

Sin embargo, me gustaría poder llamar aRenderSection en la capa inferior,_Common.cshtml, y haga que represente una sección que se define en la capa superior,Detail.cshtml. Esto no funciona:RenderSection aparentemente solo representa secciones que están definidas en la siguiente capa hacia arriba.

Por supuesto, puedo definir cada sección en cada máscara. Por ejemplo, si_Common necesita llamar aRenderSection("hd") para una sección definida enDetail, Solo coloco esto en cada_Skin y funciona

@section hd {
    @RenderSection("hd")
}

Esto da como resultado cierta duplicación de código (ya que cada máscara ahora debe tener esta misma sección) y generalmente se siente desordenado. Todavía soy nuevo en Razor, y parece que me falta algo obvio.

Al depurar, puedo ver la lista completa de secciones definidas en WebViewPage.SectionWritersStack. Si pudiera decirle a RenderSection que revise toda la lista antes de rendirse, encontraría la sección que necesito. Por desgracia, SectionWritersStack no es público.

Alternativamente, si pudiera acceder a la jerarquía de las páginas de diseño e intentar ejecutar RenderSection en cada contexto diferente, podría ubicar la sección que necesito. Probablemente me estoy perdiendo algo, pero no veo ninguna forma de hacerlo.

¿Hay alguna forma de lograr este objetivo, que no sea el método que ya describí?

Respuestas a la pregunta(4)

Su respuesta a la pregunta