Umbraco 4.7.0通过Richtext编辑器插入时宏不呈现

时间:2011-05-03 11:11:42

标签: user-controls macros umbraco

我正在使用umbraco v4.7.0。我为Usercontrol.ascx创建了一个宏,并以通常的方式添加它,并勾选“在编辑器中使用”选项。

它在RTE中渲染得很好,但是在查看页面时它不会加载宏。

我已经google了一段时间了,无法找到解决这个问题的方法,我也一直在umbraco论坛/ bug列表上看到有各种各样的帖子,但我还没有找到解决方案。

我在这里错过了一些简单的东西吗?这在之前的版本中运行良好。

4 个答案:

答案 0 :(得分:5)

最后得到答案........在模板主页中使用:

<umbraco:Item field="bodyContent" runat="server"></umbraco:Item> 

而不是

@Model.bodyContent

因此宏(通过RTE添加的宏)本身不会被另一个宏添加(在这种情况下是显示“bodyContent”字段的宏)。

答案 1 :(得分:5)

如初始问题中所述,如果您在HTML中看到的内容类似于

<?UMBRACO_MACRO macroAlias="macroNameHere" />

...而且你没有看到任何渲染。那么这是一个解决方案:

在处理文档类型的XSLT(宏)中,您可能会遇到以下情况:

<xsl:value-of select="$currentPage/bodyText" />

将其更改为:

<xsl:value-of select="umbraco.library:Item($currentPage/@id,'bodyText')" />

这将渲染bodyText中包含的宏。

请注意,umbraco将在宏输出周围创建一个DIV。要摆脱那个DIV,你要么修改umbraco源代码,要么做例如jQuery搜索和替换以摆脱它。

答案 2 :(得分:1)

您可能需要用户控制    <form runat="server">

尝试将其插入模板中 - 这为我创建了一个服务器错误,我发现了问题!

这样的事情:

<form runat="server">
                      <asp:ContentPlaceHolder ID="mainContent" runat="server" />
</form>

您将usercontrol放在占位符中的位置。

答案 3 :(得分:0)

在Richtext框中使用宏

您必须选中“宏属性”标签下的“在编辑器中使用”复选框。

enter image description here

在XSLT中打印

后使用的宏值
<xsl:value-of select="umbraco.library:Item(@id,'bodyContent')" /> 

渲染宏值。

而不是

<xsl:value-of select="bodyContent" />