Поле форматированного текста Sitecore в редакторе страниц недоступно для редактирования, если оно содержит форматирование HTML

У меня есть несколько полей, которые можно редактировать в редакторе страниц. Одним из них является форматированное текстовое поле. Это 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, но в редакторе страниц эта область недоступна.


person Erica Stockwell-Alpert    schedule 21.12.2017    source источник
comment
Попробуйте удалить тег <p> вокруг @Editable. Я думаю, что это может быть связано с тегами html, которые не разрешены внутри тега <p> и из-за которых браузер закрывает тег <p> и нарушает функциональность съедобного форматированного текста.   -  person Marek Musielak    schedule 21.12.2017
comment
Да! Ты гений!   -  person Erica Stockwell-Alpert    schedule 21.12.2017
comment
Да, я ;) И я рад, что смог помочь. Я преобразовал свой комментарий в ответ.   -  person Marek Musielak    schedule 21.12.2017


Ответы (2)


Это известная проблема, когда вы помещаете редактируемый форматированный текст внутрь тега <p>.

Существует множество тегов html, которые нельзя использовать внутри тега <p>. Вот почему ваш браузер закрывает тег <p> и нарушает функциональность редактируемого форматированного текста.

Удалите тег <p> вокруг @Editable.

person Marek Musielak    schedule 21.12.2017

Это известная проблема, но самый быстрый способ узнать, какой тег p вызывает проблему (скорее всего, вокруг @editable), открыть инструменты разработчика и посмотреть в консоли на наличие ошибок. Надеюсь это поможет

person snit80    schedule 28.12.2017