检查Sitecore中的链接类型

Yas*_*G99 5 sitecore sitecore6 sitecore-media-library

我在Sitecore的一个页面中有一个"常规链接"字段.该字段基本上指定用于播放视频的视频文件的链接.

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

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

Sea*_*ney 20

首先,你需要从你的物品上取下场地.

Sitecore.Data.Fields.LinkField field = Sitecore.Context.Item.Fields["FIELD_NAME"];
Run Code Online (Sandbox Code Playgroud)

然后,您可以检查字段的各种属性.

bool isInternal = field.IsInternal;
bool isMedia = field.IsMediaLink;
string linkType = field.LinkType;
Run Code Online (Sandbox Code Playgroud)

各种LinkType数值internal,external,media,anchor,mailto,和javascript


You*_*nes 11

请允许我说一些额外的事情.在您的情况下,您希望根据linktype进行一些额外的操作.在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;

    }
Run Code Online (Sandbox Code Playgroud)

通过这种方式,您可以获得一些方法,始终根据链接类型返回正确的URL.祝你好运!