Sitecore将html属性asp调用转换为字符串



我对sitecore和.net都很陌生,慢慢地掌握了窍门。但我对此感到困惑,因为这似乎与我在论坛和sitecore文档中读到的内容相悖。我只是想把字段添加到html标记的属性中。例如,我在subyout文件中有这个。

<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似乎只是把它当作一个字符串。

有人见过这个,或者看到我哪里出了问题吗?

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

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

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

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

有点烦人,但在这里可能有用。或者试着在标签周围加上单引号。一般来说,如果您有ANY<%%>标记,则出现严重错误。

另一个选项是在C#中绑定它:

HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "Description";
metaKeywords.Content = Sitecore.Context.Item["Description"];
Header.Controls.Add(metaKeywords);

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

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

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

最新更新