Использование нескольких RenderComponentPresentations для шаблонов XPM с Razor
Как вы, наверное, уже знаете, я работаю над некоторыми шаблонами XPM с Razor. Я столкнулся с другой проблемой, на этот раз относительно рендеринга компонентов внутри шаблонов, чтобы сделать их siteEditable.
В следующем я не уверен. У меня есть компонент, который имеет поле заголовка под названием "Заголовок" и многозначные поля компонентных ссылок, которые состоят из компонентов с заголовком, описанием и изображением. Давайте пока назовем это "Связанный USP".
В настоящее время это визуализируется с помощью шаблона под названием "Page Banner", и он просто перебирает поля с некоторыми циклами If, чтобы определить его представление, особенно для заголовка. Чтобы XPM работал, этот шаблон должен визуализировать представление компонента "Связанный USP". Итак, мы создали шаблон под названием "[XPM] USP ITEM". - к этому шаблону компонента добавлено "разрешить редактирование содержимого TBB".
Теперь возникает проблема, когда я хочу сделать заголовок редактируемым. Звучит просто, нет? Не совсем - потому что когда в родительский шаблон добавлена TBB "включить редактирование контента", он добавит <span>
теги для всех редактируемых полей, но шаблоны, которые вызываются внутри этого шаблона, также будут иметь <span>
-Tag, эффективно раздувая HTML и делает невозможным редактировать поля внутри RenderComponentPresentation из-за дублирования <span>
s.
Некоторый код для вашего удовольствия и для иллюстрации моей проблемы:
<h1>@RenderComponentField("Title", 0)</h1>
@Foreach(var linkedUSP in Fields.USPS){
@RenderComponentPresentation("linkedUSP.ID", "tcm:10-1076-32")
}
К этому шаблону добавлено включение редактирования содержимого TBB.
Теперь для упомянутого выше RCP внутри его шаблона [XPM]:
<div class="title">@RenderComponentField("Title", 0)</div>
<p>@RenderComponentField("Description", 0)</p>
<tcdl:ComponentField name="img">
<img src="@img" alt="img.MetaData.alt">
</tcdl:ComponentField>
На этот ТАКЖЕ добавлен TBB "Enable Content Edit". На переднем конце это происходит:
<div class="title"><span><span>Men</span></span></div>
Потому что родительский шаблон также добавляет интервалы к полю.
Итак, мой вопрос: как мне это решить? Упомянутое выше поле Заголовок должно быть внутри родительского шаблона, но я не могу создать специальный шаблон для него, потому что это не ссылка на компонент. Я не могу извлечь TBB из моего шаблона RCP, потому что он не будет редактируемым. Интересно, а?
Разве я не могу как-то отключить диапазоны внутри компоновщика шаблонов?