Sitecore 7,链接管理器,alwaysIncludeServerUrl无法正常工作

时间:2017-04-19 03:26:47

标签: sitecore sitecore7

我正在使用sitecore 7单站点实例。 内容编辑器以此格式生成指向其他sitecore页面的链接

<a href="~/link.aspx?_id=C136420D804946BA83DEF823817F5944&amp;_z=z">Agriculture</a>

发布后链接未转换为实际的服务器相关URL。 我已经完成了链接管理器设置&#34; alwaysIncludeServerUrl&#34;为真,但仍未获得正确的URL。

我已发布该页面但仍未显示实际网址。

更新:我不能在这里使用字段控制,因为有一些额外的逻辑可以控制需要呈现的文本。例如,如果有页面数据源被定义,那么使用它,否则使用&#34; ContentBlock&#34;当前项目的字段。

        public string ContentBlockContent = "";
        Sitecore.Data.Items.Item currentItem;

        if (Parent is Sublayout && !string.IsNullOrEmpty(((Sublayout) Parent).DataSource))
        {
            currentItem = Sitecore.Context.Database.GetItem(((Sublayout) Parent).DataSource);
        }
        else
        {
            currentItem = Sitecore.Context.Item;
        }

        if (currentItem.Fields["ContentBlock"] != null)
        {
            ContentBlockContent = currentItem.Fields["ContentBlock"].ToString();
        }
        if (currentItem.Fields["PageContentSource"] != null)
        {
            var contentPageSource = currentItem.Fields["PageContentSource"];
            var sourceItem = Sitecore.Context.Database.GetItem(contentPageSource.ToString());
            if (sourceItem != null && sourceItem.Fields["ContentBlock"] != null)
            {
                ContentBlockContent = sourceItem.Fields["ContentBlock"].ToString();
            }
        }

这就是&#34; ContentBlockContnet&#34;属性在页面上呈现。

<%= ContentBlockContent  %>

1 个答案:

答案 0 :(得分:1)

发布链接后

&gt;&gt;未转换为与服务器相关的实际网址。 它在发布后不会被转换,它在呈现页面时被转换。 确保使用Sitecore渲染控件渲染内容字段,例如sc:text, sc:link or FieldRenderer。通过这种方式,Sitecore将运行“renderField”管道,负责链接转换。