正在检查Sitecore中链接的类型

正在检查Sitecore中链接的类型,sitecore,sitecore6,sitecore-media-library,Sitecore,Sitecore6,Sitecore Media Library,我在Sitecore的一个页面中有一个“常规链接”字段。该字段主要指定用于播放视频的视频文件的链接 现在,我想做的是,检查如果此链接的类型,用户是否已将链接上载为内部链接、媒体或外部链接。我需要这些信息,因为根据链接的类型,我需要相应地执行一些操作 有没有办法检查Sitecore中链接的类型 首先,您需要从项目中删除字段 Sitecore.Data.Fields.LinkField field = Sitecore.Context.Item.Fields["FIELD_NAME"]; 然后,您

我在Sitecore的一个页面中有一个“常规链接”字段。该字段主要指定用于播放视频的视频文件的链接

现在,我想做的是,检查如果此链接的类型,用户是否已将链接上载为内部链接、媒体或外部链接。我需要这些信息,因为根据链接的类型,我需要相应地执行一些操作


有没有办法检查Sitecore中链接的类型

首先,您需要从项目中删除字段

Sitecore.Data.Fields.LinkField field = Sitecore.Context.Item.Fields["FIELD_NAME"];
然后,您可以检查字段的各种属性

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

各种
LinkType
值是
内部
外部
媒体
锚定
邮件
,和
javascript
请允许我陈述一些额外的内容。在您的情况下,您希望基于链接类型执行一些附加操作。在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。祝你好运