2010-06-27 4 views
0

Application.spark:moteur vue Spark - contenu nommé ignoré avec RenderAction

<html> 
    <head> 
    <use content="head"/> 
    </head> 
    <body> 
    <use content="view"/> 
    </body> 
</html> 

Index.spark:

# Html.RenderAction("Hello"); // This renders _Hello.spark 

_Hello.spark:

<content name="head"> 
    <script src="/hello.js"></script> 
</content> 

<p>hello</p> 

et le contenu de la tête _Hello .spark est ignoré. Comment puis-je le faire inclure?

Répondre

0

RenderAction rend vue partielle, qui ne sont généralement pas vue maître (mise en page). Vous pouvez essayer de spécifier la disposition principale pour le _Hello.spark mais il sera rendu dans le résultat partiel, pas dans la vue principale.

Vous pouvez essayer d'utiliser < fichier use = « _ Hello.Spark »/> (ou < Bonjour/>) à la place, cela nous espérons rendre le contenu de la tête dans la principale disposition du maître. Mais cela nécessite _Hello.spark d'être une vue partielle pure, pas d'action.

Si vous avez besoin de RenderAction, vous ne serez pas en mesure de modifier le contenu de votre tête à partir de là. RenderAction s'exécute séparément à l'extérieur de Spark au moment de l'exécution et la fusion du contenu de la tête est effectuée par Spark au moment de la compilation.

Vous pouvez utiliser JavaScript pour modifier le contenu de la tête du résultat de l'action rendue.

Ou, vous pouvez spécifier votre script inclut dans la vue principale.

Vous pouvez également les mettre en _HelloIncludes.spark et faire < HelloIncludes/> - pour éviter la duplication de code.

Questions connexes