Application.spark:
<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>
_Hello.spark的头部内容被忽略。我怎样才能把它包括在内?
答案 0 :(得分:0)
RenderAction渲染部分视图,通常不具有主视图(布局)。您可以尝试为_Hello.spark指定主布局,但它将在部分结果内部呈现,而不是在主视图内部。
您可以尝试使用&lt; use file =“_ Hello.Spark”/&gt; (或者&lt; Hello /&gt;)相反,这有望在主主布局中呈现头部内容。但是这需要_Hello.spark是纯粹的局部视图,而不是行动。
如果您需要 RenderAction ,则无法从那里修改您的头部内容。 RenderAction在运行时在Spark外部单独运行,并且在编译时由Spark完成合并头部内容。
您可以使用JavaScript从渲染的操作结果中修改头部内容。
或者,您可以在主视图中指定脚本包含。
您也可以将它们放入_HelloIncludes.spark并执行&lt; HelloIncludes /&gt; - 避免重复代码。