【发布时间】:2019-07-08 13:25:40
【问题描述】:
我在最近的一个项目中在 Glass Mapper 中遇到了一些奇怪的行为,我想知道是否有人有任何见解。我的任务是将 Sitecore 从 8.1(修订版 160519)升级到 8.2 Update 7(最新的 8.x 版本)。升级完成后,我遇到了this article 中提到的一般链接字段错误。所以我安装了修补程序并启动了网站。
在测试时,我遇到了 Glass Mapper 的一个特殊问题。除了那些使用 Glass 的 RenderLink 或 BeginRenderLink 的链接外,整个网站的普通链接都可以正常工作。在那里,对于位于 \sitecore\Content\Client\home 位置下的页面,它会分割初始的 \home(因此到 \sitecore\Content\Client\home\students 的链接将呈现为 \students 而不是 \home\students) .
但是,Sitecore LinkManager 工作正常,并且玻璃代码似乎使用了 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 混淆了,但重命名节点并重建链接数据库并没有解决任何问题。
我尝试了几个不同版本的 4.x Glass Mapper,没有任何区别。我已经开始通过 Glass Mapper 代码进行调试,但这进展缓慢。
有人有什么想法吗?
【问题讨论】:
标签: sitecore sitecore8 sitecore-mvc glass-mapper