您正在尝试此代码
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数据库,我无法在页面编辑器中进行编辑。单击页面编辑器中的链接后,我需要编辑目标。有人可以建议我吗?
答案 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