2017-04-19 77 views
0

我正在使用sitecore 7單個站點實例。 內容編輯器生成鏈接到其他網頁Sitecore的這種格式Sitecore 7,鏈接管理器,alwaysIncludeServerUrl不工作

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

後發佈鏈接不會轉化爲實際的服務器相關的URL。 我已經chnaged鏈接管理器設置「alwaysIncludeServerUrl」爲true,但仍然沒有得到正確的URL。

我已發佈該頁面,但仍未顯示實際的網址。

更新:我不能在這裏使用字段控制,因爲有一些額外的邏輯控制着什麼文本需要被渲染。例如,如果定義了頁面數據源,則使用該數據源,否則使用當前項目的「ContentBlock」字段。

 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(); 
      } 
     } 

這就是「ContentBlockContnet」屬性如何呈現在頁面上。

<%= ContentBlockContent %> 

回答

1

>>發佈後鏈接沒有轉換爲與服務器實際相關的URL。 它在發佈後不會被轉換,它在頁面呈現時被轉換。 確保您使用Sitecore呈現控件呈現內容字段,例如sc:text, sc:link or FieldRenderer。通過這種方式,Sitecore將運行「renderField」管道,該管道注意鏈路轉換。

+0

我已經添加了一點點細節。 – Ali

+0

終於奏效了。我使用了FieldRenderer.Render(sourceItem,「ContentBlock」) – Ali