Sitecore Linkmanager甚至可以从页面编辑器链接到Web数据库链接

时间:2015-03-10 19:20:53

标签: sitecore page-editor

您正在尝试此代码

public String GetItemUrl(Item item)
{
    Sitecore.Links.UrlOptions urlOptions = (Sitecore.Links.UrlOptions)Sitecore.Links.UrlOptions.DefaultOptions.Clone();
    urlOptions.SiteResolving = true;

    return Sitecore.Links.LinkManager.GetItemUrl(item,urlOptions);
}

ViewBag.thisurl = GetItemUrl(item)

然后从cshtml

a href="@ViewBag.thisURL" .....

当我点击链接时,这将始终指向CD数据库,我无法在页面编辑器中进行编辑。单击页面编辑器中的链接后,我需要编辑目标。有人可以建议我吗?

1 个答案:

答案 0 :(得分:1)

您使用SiteResolving,您是否在一台服务器上运行CMS和CD?所以具有相同的web.config和站点web.config部分中的主机名始终指向CD。 SiteResolving explained

有多种选择。

1)创建条件并在页面编辑模式下关闭SiteResolving。像这样的东西:

public String GetItemUrl(Item item)
{
  Sitecore.Links.UrlOptions urlOptions = (Sitecore.Links.UrlOptions)Sitecore.Links.UrlOptions.DefaultOptions.Clone();

  if (Sitecore.Context.PageMode.IsPageEditor || Sitecore.Context.PageMode.IsPreview)
  {
    //depend on your site configuration this is a idea
    urlOptions.SiteResolving = false;
  }
  else
  {
    urlOptions.SiteResolving = true;
  }

  return Sitecore.Links.LinkManager.GetItemUrl(item,urlOptions);
}

2)创建自己的Sitecore LinkProvider以更改行为,请参阅此示例Create a Sitecore LinkProvider to use different LinkManager configurations