这个问题与CMS Composite C1和MvcPlayer功能有关。
我正在为我的网页使用Razor页面模板,并使用
在布局中嵌入了多个MVC操作@Function("Composite.AspNet.MvcPlayer", new { Path = "/Controller/Action" })
这一般来说效果很好,但由于某种原因,MvcPlayer不仅渲染动作本身返回的视图,而且还包含视图
<html><head></head><body>[View content is here]</body></html>
这显然搞砸了我的标记,因为我在网站中嵌套了html-blocks。 为什么会发生这种情况,是否有办法阻止MvcPlayer创建额外的标记?
由于这似乎只是一个复合C1问题,我linking to the source code for Composite C1希望有人能够告诉我它是否是复合C1错误,或者我是不是错误地使用它。
答案 0 :(得分:1)
如果查看MvcPlayer
的代码,您会发现以下template file:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:in="http://www.composite.net/ns/transformation/input/1.0" xmlns:lang="http://www.composite.net/ns/localization/1.0" xmlns:f="http://www.composite.net/ns/function/1.0" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="xsl in lang f">
<xsl:template match="/">
<html>
<head>
</head>
<body>
<f:function name="Composite.AspNet.MvcPlayer.Render">
<f:param name="Path" value="{/in:inputs/in:param[@name='Path']}" />
</f:function>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
您需要弄清楚如何使用您自己的模板覆盖默认模板。您可能需要删除修改后的XSL文件,但我目前无法找到它。