我使用网站内容类型RichHtmlField作为完整HTML类型,其值为 hello PublishingWebControls:layoutpage中的RichHtmlField标记不会呈现它。
而不是显示 hello 。它显示的是html标签。
任何帮助都值得赞赏。
由于
答案 0 :(得分:2)
我在寻找解决方案的同时遇到了这个问题,我觉得我找到了答案。
在我的场景中,我的页面上有多个RichHtmlFields,一个正确显示,而另一个则没有。当我通过powershell查看字段时,我发现SchemaXML有所不同,WORKING字段具有以下附加属性:
RichText="True"
RichTextMode="FullHtml"
我写了一个快速的PowerShell脚本来更新问题字段,问题就消失了(看下面的脚本)。必须在列表级别进行更改才能对现有页面/列表产生影响,但我相信在根网站(或正确的子网站)上对列进行修改也会起作用。
$web = $site.OpenWeb($site.RootWeb.ID)
$list = $web.Lists["Pages"]
[Microsoft.SharePoint.Publishing.Fields.HtmlField]$field = [Microsoft.SharePoint.Publishing.Fields.HtmlField]$list.Fields.GetFieldByInternalName("Abst ract")
$field.RichText = $true
$field.RichTextMode = [Microsoft.SharePoint.SPRichTextMode]::FullHtml
$field.Update()
$list.Update()
答案 1 :(得分:0)
这是因为放在RichHtmlField中的字段是Text而不是HTML。
如果您有正确的内容类型,则需要执行以下操作才能从schema.xml更新列表实例。
首先删除任何内容类型的页面,转到“页面”列表并删除内容类型的每一列,然后删除内容类型。进入站点设置然后站点内容类型并删除它。为列做同样的事情。转到网站设置,然后列将删除内容类型中的每一列(尽管它们应该已经丢失)。
这是因为当您从Content类型创建网站时,它会使用Schema.xml来描述内容类型的格式,然后将其实例化并将其提供给页面,以便在更新架构之后,页面自从它已经启动以来就没有了。