页面编辑器中的Sitecore富文本字段在包含HTML格式时不可编辑

时间:2017-12-21 18:28:33

标签: html sitecore glass-mapper page-editor

我有许多可在页面编辑器中编辑的字段。其中一个是富文本字段。这是html:

@foreach (var speaker in Model.Speakers)
{
    <div class="speaker__item" id="@speaker.Id">
        <div class="speaker__media">
            @RenderImage(speaker, x => x.Speaker_Image, isEditable: true)
        </div>
        <div class="speaker__info">
            @if (IsInEditingMode || !string.IsNullOrEmpty(speaker.Speaker_Name))
            {
                <h4 class="speaker__name">@Editable(speaker, x => x.Speaker_Name)</h4>
            }

            @if (IsInEditingMode || !string.IsNullOrEmpty(speaker.Speaker_Title))
            {
                <p class="speaker__title">@Editable(speaker, x => x.Speaker_Title)</p>
            }

            @if (IsInEditingMode || !string.IsNullOrEmpty(speaker.Speaker_Description))
            {
                <div class="speaker__bio">
                    <p>@Editable(speaker, x => x.Speaker_Description)</p>
                </div>
            }

            @RenderLink(speaker, x => x.Speaker_Bio, attributes: new { @class = "speaker__link" }, isEditable: true)
        </div>
    </div>
}

富文本字段是Speaker_Description。当字段中没有HTML(即只是纯文本)时,它会正确呈现并在页面编辑器中可编辑。当该字段确实包含html时,例如包含在<p>标记中或包含换行符时,它会正确呈现,但在页面上不可编辑。我仍然可以在Sitecore中编辑该字段,但该区域在页面编辑器中无法点击。

2 个答案:

答案 0 :(得分:6)

将可编辑的富文本放在<p>代码中时,这是一个已知问题。

<p>标记内不允许有大量html标记。这就是您的浏览器关闭<p>代码并破坏可编辑富文本功能的原因。

删除<p>附近的@Editable标记。

答案 1 :(得分:0)

这是一个已知问题,但是找出哪个p标签导致问题的最快方法(很可能是围绕@editable),打开开发工具并查看控制台是否存在错误。希望这有帮助