Umbraco“alttemplate = templatename”|内容问题

时间:2012-07-31 22:57:21

标签: xslt umbraco

我在我的umbraco xslt代码中使用了我的网址末尾的“?alttemplate = TemplateName”

以下是示例:<a href="{umbraco.library:NiceUrl(@id)}?alttemplate=CommunityVideo">Click here</a>

当用户点击链接时,弹出窗口(fancybox)将在内部进行适当的内容渲染时触发。

此弹出窗口工作正常 - 唯一的问题是与umbraco中的节点关联的模板具有RTE(富文本编辑器)。我在RTE中输入的内容不显示非常奇怪,因为我在“CommunityVideo”模板上有umbraco字段选择项。

理论上,内容应该呈现,但事实并非如此。

以下是填充内容的代码:

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title><umbraco:Item field="pageName" runat="server" /></title>
  <link rel="stylesheet" href="/css/main.css" type="text/css" />
  <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
</head>
<body id="popup">
  <div id="comm-video-wrap">
    <umbraco:Item field="bodyText" runat="server" />
  </div>
</body>

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

有许多不太可能的原因。

首先,你在项目上错误地拼写了别名 - 我猜测doctype上的名称是“Body Text”或“BodyText”或“bodyText” - 所有这些都会生成bodyText的别名 - 如果不是那可能是问题。

其次是隐藏渲染项目的样式表设置 - 使用firebug来检查它。

使用alttemplate应该有效 - 但你需要确保它运行你认为的模板。

可能是RTE中没有可用文本,您可以通过添加the textIfEmpty attribute来验证。

<umbraco:item field="bodyText" textIfEmpty="There is no commentary text" runat="server" />

还有其他umbraco:item属性可能有助于调试,请尝试将umbraco:item语句调整为:

<umbraco:item field="bodyText" insertTextBefore="**BEFORE**" insertTextAfter="**AFTER**" htmlEncode="true" textIfEmpty="There is no commentary text" runat="server"/>

如果你看不到任何文字,那么你认为正在运行的模板就不是。

答案 1 :(得分:0)

另一种可能性是你的模板名称不精确(套管和全部)。 fancybox正在进行AJAX调用以获取页面吗?它是在响应中从上面获得标记还是空白?