Стандартные значения правильные в CE, но нулевые в коде
Если я устанавливаю значение поля в стандартные значения базового шаблона, стандартное значение отображается в этом поле в редакторе содержимого (и в Rocks), однако, когда я ссылаюсь на это поле по идентификатору в коде
Html.Sitecore().Field(ID, Item);
//ED. У меня есть вспомогательный метод, который выполняет проверку ошибок, называется GetField(), моя ошибка. Для большей ясности: это работает правильно, если я захожу в CE и говорю добавить символ в конец значения и нажать "Сохранить". (переопределяя стандартные значения)
Возвращаемое значение равно нулю.
Это касается как новых элементов, созданных после изменения стандартных значений, так и текущих элементов.
2 ответа
Попробуйте: .Field () вместо .GetField()
Как в Html.Sitecore().Field(ID, Item);
Я думаю, что проблема здесь решена, даже несмотря на то, что это похоже на ошибку Sitecore, связанную с откатом элементов и полями, которые наследуют свое значение от стандартных значений: откат языка не работает для полей со стандартными значениями (Sitecore 8.1)
Причина, по которой я говорю, что есть решение, заключается в том, что я смог решить его именно таким образом, прежде чем даже прочитать этот ответ. Проще говоря, кажется, что Sitecore не извлекает стандартные значения для полей в случае отката элемента, как если бы я отключил откат элемента, поля со стандартными значениями больше не были нулевыми в коде: (
Но, вероятно, лучшее решение - это откат уровня поля: если вы включите откат уровня поля для этого точного поля в шаблоне, он будет извлекать и стандартные значения, когда произойдет откат элемента.