Deseo generar sección de encabezado HTML en una acción secundaria; mientras que la página tiene muchas otras acciones infantiles. La sección de cabecera html depende de las otras acciones para determinar qué archivos js/css deben incluirse. Las diferentes acciones del niño podrían compartir el mismo archivo js/css; y las diferentes páginas tienen una combinación diferente de css/js, por lo que hay una razón para hacerlo. Aquí está mi código de muestra:Cómo cambiar las secuencias de acciones secundarias en MVC
Layout.cshtml:
<html>
<head>
@RenderZone("header")
</head>
<body>
@RenderZone("zone1")
@RenderZone("zone2")
@RenderZone("zone3")
</html>
Cada zona tiene 1 o muchas acciones secundarias.
El RenderZone es también una acción. El modo de datos:
Model = GetAllChildActions(zoneName)
La vista RenderZone:
foreach(var m in Model)
@html.action(controller = m.controller, action = m.action)
Debido a que la zona de cabecera es la parte superior por lo que siempre se ejecuta en primer lugar, entonces no puede obtener datos de otras acciones del niño. He intentado con los filtros (onActionExecuted; onActionResultExcuted, etc.) pero ninguno de ellos funciona. Realmente necesito ejecutar la acción del encabezado después de que se procesen todas las acciones secundarias. No quiero generar el CSS en la parte inferior de una página. Podría, pero no quiero usar javascript para inyectar los archivos js/css; o escribe un módulo http para "manualmente" cambiar el html de salida. Es muy fácil de manejar en forma de web. Creo que hay una manera de hacerlo en MVC también. ¡Cualquier ayuda será apreciada!
¿No es posible un 'OrderBy()' simple? –
¡Gracias por tu respuesta! pero no hay ningún tipo disponible para acciones (acciones secundarias) en una página. A diferencia de Webform, que podemos cargar el control del usuario al encontrar una identificación de control, la maquinilla de afeitar MVC no proporciona una forma de verificar los elementos secundarios de una página. – user985287