6

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

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

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

4

2 回答 2

21

首先,您需要从您的项目中取出该字段。

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

然后,您可以检查您的领域的各种属性。

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

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

于 2012-02-06T15:02:36.173 回答
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。祝你好运!

于 2012-02-07T11:03:07.580 回答