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

Tim*_*mes 3 macros user-controls umbraco

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

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

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

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

gil*_*les 5

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

<umbraco:Item field="bodyContent" runat="server"></umbraco:Item> 
Run Code Online (Sandbox Code Playgroud)

而不是像

@Model.bodyContent
Run Code Online (Sandbox Code Playgroud)

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


fir*_*pol 5

如果,如初始问题中所述,您在HTML中看到的内容就像是

<?UMBRACO_MACRO macroAlias="macroNameHere" />
Run Code Online (Sandbox Code Playgroud)

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

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

<xsl:value-of select="$currentPage/bodyText" />
Run Code Online (Sandbox Code Playgroud)

将其更改为:

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

这将渲染bodyText中包含的宏.

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