1

我对 sitecore 和 .net 都很陌生,并且正在慢慢掌握它。但我对此感到困惑,因为它似乎与我在论坛和 sitecore 文档中所读到的内容背道而驰。我只是想将字段添加到 html 标记的属性中。例如,我在子布局文件中有这个。

<title><%= Sitecore.Context.Item["Page Title"] %></title>
<meta name="description" content='<%= Sitecore.Context.Item["Description"] %>' />

预览的结果输出是这样的。

<title>Inputted Page Title</title>
<meta name="description" content="<%= Sitecore.Context.Item["Description"] %>" />

Sitecore 似乎只是将其作为字符串抓取。

任何人以前见过这个或看到我可能会出错的地方吗?

4

3 回答 3

1

首先,如果这真的如您在此处描述的那样发生,那是一个 ASP.NET 解析错误,与 Sitecore 无关。

健全性检查 #1:这真的是所有代码吗?您的元标记上没有 runat="server" 属性?因为那肯定会导致这种问题。

如果没有,这不应该发生......但是......我发现使用这个结构有时更可靠:

<meta name="description" content=<%="\"" + Sitecore.Context.Item["Description"] + "\""%> />

有点烦人,但可能在这里工作。或者尝试在标签周围加上单引号。通常,如果您的 HTML 输出中有任何 <% %> 标记,则说明存在严重错误。

于 2012-07-10T00:23:16.293 回答
1

另一种选择是在 C# 中绑定它:

HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "Description";
metaKeywords.Content = Sitecore.Context.Item["Description"];
Header.Controls.Add(metaKeywords);
于 2012-07-10T12:37:02.220 回答
0

我想到了。以下行是正确的语法,但它是使用其内部文件资源管理器的站点核心。Sitecore 将对 < 进行编码以创建 ascii &lt;

<meta name="description" content="<%= Sitecore.Context.Item["Description"] %>"

我不得不使用文件资源管理器的原因是因为客户 IT 部门不允许我访问服务器文件。所以最后他们做到了,当我直接访问文件并保存所有工作时。感谢大家的反馈。

于 2012-07-13T22:16:34.407 回答