Я столкнулся с каким-то странным поведением в Glass Mapper в недавнем проекте, и мне интересно, есть ли у кого-нибудь идеи. Мне поручено обновить Sitecore с версии 8.1 (версия 160519) до версии 8.2 Update 7 (последняя версия 8.x). Когда обновление было завершено, я столкнулся с общей ошибкой поля ссылки, упомянутой в этой статье. Итак, я установил исправление и запустил сайт.
Когда я тестировал, я столкнулся со своеобразной проблемой со Glass Mapper. Обычные ссылки на сайте работают нормально, за исключением тех, которые используют Glass’s RenderLink или BeginRenderLink. Там для страниц, расположенных в расположении \sitecore\Content\Client\home, он вырезает начальный \home (поэтому ссылка на \sitecore\Content\Client\home\students будет отображаться как \students вместо \home\students) .
Тем не менее, Sitecore LinkManager работает нормально, и код Glass, похоже, использует LinkManager.
Я сделал это, чтобы проверить:
@{
var id = Guid.Parse("{74466305-2BB4-44D2-9860-57E35DC970E7}"); // the ID of a link that wasn’t rendering correctly.
var item = SitecoreContext.GetItem<Sitecore.Data.Items.Item>(id);
var sitecoreLink = Sitecore.Links.LinkManager.GetItemUrl(item); //using Sitecore’s link gets me the correct /home/student/application
var glassLink = RenderLink(m => m.CompleteApplication); //this comes back as /student/application
}
Сначала я подумал, что Glass путает \sitecore\Content\Client\home с \sitecore\Content\Home, но переименование узла и перестройка базы данных ссылок ничего не исправили.
Я пробовал несколько разных версий Glass Mapper 4.x без каких-либо различий. Я начал отлаживать код Glass Mapper, но это медленно.
У кого-нибудь есть мысли?