我在我的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>
有什么想法吗?
答案 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调用以获取页面吗?它是在响应中从上面获得标记还是空白?