C# Sitecore LinkManager ExpandDynamicClinks未解析站点URL
我对Sitecore中的C# Sitecore LinkManager ExpandDynamicClinks未解析站点URL,c#,sitecore,sitecore7,C#,Sitecore,Sitecore7,我对Sitecore中的ExpandDynamicClinks有问题 对于sitesolution,我使用以下方法传递true。问题在于,该网站并没有按照承诺得到解决 bodyExpandedLinks = Sitecore.Links.LinkManager.ExpandDynamicLinks(email.Body.Value, true); 我确实在我的提供商中设置了永远不要解析该站点,因为除了上面的邮件正文之外,这是我对整个站点的要求 alwaysIncludeServerUrl="
ExpandDynamicClinks
有问题
对于sitesolution
,我使用以下方法传递true
。问题在于,该网站并没有按照承诺得到解决
bodyExpandedLinks = Sitecore.Links.LinkManager.ExpandDynamicLinks(email.Body.Value, true);
我确实在我的提供商中设置了永远不要解析该站点,因为除了上面的邮件正文之外,这是我对整个站点的要求
alwaysIncludeServerUrl="false"
有人知道怎么强迫吗
谢谢…我找到了另一种方法 我确实添加了一个额外的链接提供程序,具有相同的配置,但我设置为true的alwaysIncludeServerUrl
<add name="sitecore_expandlinks" alwaysIncludeServerUrl="true" (...) >
如果其他人有更具凝聚力的选择,我将不胜感激
谢谢。一个选项可能是在调用
ExpandDynamicClinks
之前检查AlwaysIncludeServerUrl
是否设置为False。如果为False,您可以显式调用Sitecore.Links.UrlOptions.DefaultOptions.AlwaysIncludeServerUrl=true
,然后在调用ExpandDynamicClinks
后将其设置回False。我知道这篇文章被标记为sitecore7,但我想分享Sitecore 8.1的解决方案。我不知道它对7人是否有效。它改编自Sitecore.Links.LinkProvider.ExpandDynamicLinks()
:
这不适用于媒体链接,因为Sitecore.links.DynamicLink.BuildMediaUrl()
和Sitecore.links.MediaLinkedExpander.Expand()
完全忽略其URL选项参数。如果需要完整的媒体URL,请使用以下内容包装代码:
using (new SettingsSwitcher("Media.AlwaysIncludeServerUrl", "true"))
{
phrase = linkParser.ExpandDynamicLinks(phrase, urlOptions);
}
此属性是只读的:/“属性或索引器”Sitecore.Links.LinkManager.AlwaysIncludeServerUrl“无法分配给--它是只读的”已更新我的答案。不确定这是否有效,但可能值得一试!最好是使用新的linkManager配置,只包含服务器url。谢谢
var linkParser = new LinkProvider.LinkParser();
var urlOptions = LinkManager.Provider.GetDefaultUrlOptions(); // returns a clone.
urlOptions.SiteResolving = true;
urlOptions.AlwaysIncludeServerUrl = true;
text = linkParser.ExpandDynamicLinks(text, urlOptions);
using (new SettingsSwitcher("Media.AlwaysIncludeServerUrl", "true"))
{
phrase = linkParser.ExpandDynamicLinks(phrase, urlOptions);
}