2010-06-27 85 views
0

Application.spark:星火視圖引擎 - 命名內容與忽略的RenderAction

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

Index.spark:

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

_Hello.spark:_Hello的

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

<p>hello</p> 

和頭部的內容.spark被忽略。我如何使它包括在內?

回答

0

RenderAction呈現局部視圖,通常不具有主視圖(佈局)。您可以嘗試指定_Hello.spark的主佈局,但它將呈現在部分結果中,而不是在主視圖中。

你可以嘗試使用<使用文件=「_ Hello.Spark」/>(或<你好/ >)代替,這將有望使主總綱發展藍圖頭內容。但是這需要_Hello.spark爲純粹的局部視圖,而不是行爲。

如果您需要RenderAction,您將無法從那裏修改您的頭部內容。在運行時,RenderAction在Spark外單獨運行,並且在編譯時通過Spark完成頭部內容的合併。

您可以使用JavaScript從渲染的操作結果修改頭部內容。

或者,您可以指定您的腳本包含在主視圖中。

你也可以把它們放到_HelloIncludes.spark中,並做< HelloIncludes/> - 避免重複的代碼。