1

Есть ли какой-то трюк с заполнителями в Sitecore MVC, чтобы гарантировать, что они всегда можно выбрать в редакторе page , даже если они не содержат каких-либо визуализаций? Мой рендеринг контроллера объявляет заполнитель в представлении cshtml следующим образом:Sitecore MVC Убедитесь, что пустой заполнитель выбран в редакторе опыта.

<div> 
    <!-- some html markup and fields rendered here --> 
    @Html.Sitecore().Placeholder("my-component-placeholder") 
</div> 
+0

Вы имеете в виду у вас возникли проблемы со зрением пустых заполнителей в xEditor? Если это так, убедитесь, что у вас есть местозаполнитель, определенный в настройках макета/заполнителя. – RvanDalen

+0

У меня уже есть параметр настроек заполнитель, определенный для него. –

+0

Вы вошли в систему как admin? С установленными параметрами и ключ-заполнитель имеет точное соответствие, тогда вы должны увидеть область холста. В противном случае я столкнулся с ситуацией, когда это выглядело так, как будто это был рендеринг, но содержал рендеринг, который возвращал html-разметку с высотой 0. – RvanDalen

ответ

4

Для обеспечения видимости шаблонной и выбора, необходимо обеспечить следующее:

  1. настройкой заполнителей элемента существует в Sitecore с правильным Placeholder Key, соответствующий объявлению cshtml.
  2. Элемент настроек заполнитель установлен в Editable.
  3. CSS на странице не препятствует тому, чтобы заполнитель был видимым.
+1

Там также была проблема при использовании символов верхнего регистра в именах заполнителей, не уверен, что это еще исправлено или нет, я выбираю все строчные буквы: http: //sitecorepromenade.blogspot .co.uk/2014/12/sitecore-7x-mvc-and-placeholder.html – jammykam

+0

@jammykam да это все еще проблема, если вы не установите исправление. Пробовав все остальное, мы изменили дело, и проблема исчезла. Примерно через час наткнулся на этот https://kb.sitecore.net/articles/296299 Забавно, что я использую Sitecore 8 и его все еще там. – Fred

+0

@Fred Ha! Я не видел эту статью.Я всегда использовал все строчные буквы, только личное предпочтение, поэтому никогда не видел проблемы ... – jammykam

2

Если вы используете какие-либо динамические клавиши-заполнители, существует параметр, который управляет, если пустые заполнители без настроек доступны для редактирования. Он расположен в Sitecore.ExperienceEditor.config.

WebEdit.PlaceholdersEditableWithoutSettings 

Значение по умолчанию - false. Если установлено значение истинно, пустые заполнителей может быть отредактирован:

<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/"> 
    <sitecore> 
     <settings> 
      <setting name="WebEdit.PlaceholdersEditableWithoutSettings"> 
       <patch:attribute name="value">true</patch:attribute> 
      </setting> 
     </settings> 
    </sitecore> 
</configuration> 
2

решаемые устанавливающих Query.MaxItems:

<setting name="Query.MaxItems"> 
    <patch:attribute name="value">1000</patch:attribute> 
</setting> 

Объяснение:
В больших проектах вы можете иметь много заполнителей (более 260 то, что по умолчанию количество элементов Sitecore Query API читается за один раз).

Команда Sitecore установила ограничение, но кеш таймера не был исправлен и все еще читает элементы только один раз, так как те места, которые не были добавлены в кеш из-за ограничения, пропускаются.

Это код диспетчера кэша, взятого из отражателя:

public virtual void Reload() 
{ 
    lock (FieldRelatedItemCache.Lock) 
    { 
    this.itemIDs = new SafeDictionary<string, ID>(); 
    Item[] local_1 = this.Database.SelectItems(string.Format("{0}//*[@@templateid = '{1}']", (object) this.ItemRoot.Paths.FullPath, (object) this.ItemTemplate)); 
    if (local_1 == null) 
     return; 
    foreach (Item item_0 in local_1) 
    { 
     string local_3 = item_0[this.FieldKey]; 
     if (!string.IsNullOrEmpty(local_3) && !this.itemIDs.ContainsKey(this.GetCacheKey(local_3))) 
     this.Add(local_3, item_0); 
    } 
    } 
} 
+0

Это решает проблему. – Jihyun

Смежные вопросы