Я предполагаю, что у вас есть элементы карусели в одной папке в вашем дереве контента в Sitecore с некоторыми конкретными полями для каждого элемента карусели, такими как изображение, заголовок и т. д., поэтому у вас должно быть поле в элементах карусели со ссылкой для:
Название: Ссылка
Тип: GeneralLink
свяжите каждый элемент карусели с соответствующей страницей, а затем, по вашему мнению, вы можете прочитать URL-адрес страницы:
и вы можете использовать этот метод, чтобы получить URL-адрес ссылки на страницу из вашего компонента карусели:
public String LinkUrl(Sitecore.Data.Fields.LinkField lf)
{
switch (lf.LinkType.ToLower())
{
case "internal":
// Use LinkMananger for internal links, if link is not empty
return lf.TargetItem != null ? Sitecore.Links.LinkManager.GetItemUrl(lf.TargetItem) : string.Empty;
case "media":
// Use MediaManager for media links, if link is not empty
return lf.TargetItem != null ? Sitecore.Resources.Media.MediaManager.GetMediaUrl(lf.TargetItem) : string.Empty;
case "external":
// Just return external links
return lf.Url;
case "anchor":
// Prefix anchor link with # if link if not empty
return !string.IsNullOrEmpty(lf.Anchor) ? "#" + lf.Anchor : string.Empty;
case "mailto":
// Just return mailto link
return lf.Url;
case "javascript":
// Just return javascript
return lf.Url;
default:
// Just please the compiler, this
// condition will never be met
return lf.Url;
}
}
и в вашем представлении карусели:
Sitecore.Data.Fields.LinkField linkField = carouselItem.Fields["Link"];
var pageUrl = linkField.LinkUrl();
Этот код взят из этого ответа.
person
Ayman Barhoum
schedule
06.08.2017