正在检查Sitecore中链接的类型
我在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.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。祝你好运