2012-02-06 34 views
5

我在Sitecore的一個頁面中有一個'General Link'字段。該字段基本上指定用於播放視頻的視頻文件的鏈接。檢查Sitecore中的鏈接類型

現在,我要做的是,檢查如果類型此鏈接,用戶是否已經上傳的鏈接作爲內部鏈接,媒體或外部鏈接。我需要這些信息,這取決於鏈接的類型,我需要相應地執行一些操作。

有沒有辦法檢查Sitecore中的鏈接類型?

回答

19

1您需要關閉您的物品。

Sitecore.Data.Fields.LinkField field = Sitecore.Context.Item.Fields["FIELD_NAME"]; 

然後,您可以檢查您的字段的各種屬性。

bool isInternal = field.IsInternal; 
bool isMedia = field.IsMediaLink; 
string linkType = field.LinkType; 

各種LinkTypeinternalexternalmediaanchormailtojavascript

+0

太棒了!謝了哥們! – YashG99 2012-02-06 16:17:04

11

讓我狀態的東西更多的請。在你的情況下,你想有一些基於鏈接類型的額外動作。在sitecore文檔中,您可以找到更多關於此的信息。爲了幫助您在這個看到下面的代碼:

public static string GetUrl(this Sitecore.Data.Fields.LinkField LinkField) { 

     string url = ""; 

     switch (LinkField.LinkType) { 
      case "internal": 
      case "external": 
      case "mailto": 
      case "anchor": 
      case "javascript": 
       url = LinkField.Url; 
       break; 
      case "media": 
       MediaItem media = new MediaItem(LinkField.TargetItem); 
       url = Sitecore.StringUtil.EnsurePrefix('/', MediaManager.GetMediaUrl(media)); 
       break; 
      case "": 
      default: 
       break; 
     } 

     return url; 

    } 

這樣你可以得到一些方法了,將永遠返回您根據鏈路類型正確的URL。祝你好運!