【问题标题】:Weird behavior rendering links with Glass Mapper after Sitecore upgradeSitecore 升级后与 Glass Mapper 的奇怪行为渲染链接
【发布时间】: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


    【解决方案1】:

    V4 中的 Glass 链接是在创建模型时生成的。该模型很可能是在不同的站点上下文 (Sitecore.Context.Site) 下生成的。

    为了测试让 Glass 加载您上面的视图中的模型,然后获取 URL,这将确保两个 URL 是在同一个站点上下文中生成的。如果是不同的站点上下文,您将需要查看站点上下文的切换位置和方式。

    【讨论】:

    • 不幸的是,没有这样做。结果相同。我什至通过并升级到 Glass 5,得到了相同的结果。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    相关资源
    最近更新 更多