Наши редакторы в EPiserver хотели бы иметь возможность изменять ссылки hreflang каждой страницы по мере необходимости.Поэтому я хотел бы изменить наши страницы и включить переопределение функции hreflang по умолчанию в episerver.
Я начал с того, что попытался написать свой собственный htmlhelper, который соберет для меня hreflang, чтобы я мог его изменить.позже.
В файле HtmlHelpers.cs я начал со следующего:
public static IHtmlString HrefLangLinks()
{
var pageLanguagesBranches = ContentRepository.GetLanguageBranches<PageData>(ICurrentPage.ContentLink).ToList();
var availablePageLanguages = FilterForVisitor.Filter(pageLanguagesBranches).OfType<PageData>();
// Dictionary<String, String>
return null;
}
Visual Studio сообщает мне, что ICurrentPage
не имеет определения для ContentLink
.
Буду признателен за любую помощь, поскольку я не очень знаком с EPiserver.
Обновление 1:
Было предложено следующее:
public static IHtmlString HrefLangLinks(this BasePage currentPage)
{
var pageLanguagesBranches = ContentRepository.GetLanguageBranches<PageData>(currentPage.ContentLink).ToList();
var availablePageLanguages = FilterForVisitor.Filter(pageLanguagesBranches).OfType<PageData>();
// Dictionary<String, String>
return null;
}
Вместо BasePage
У нас есть StandardPage
, который наследуется от SitePageData
, который наследуется от PageData
.Я попробовал все три, но это не сработало, Visual Studio подчеркивает этот раздел ContentRepository.GetLanguageBranches<PageData>
следующим сообщением:
Неподдерживаемый внутренний API ....
Ссылка на объекттребуется для нестатического поля, метода или свойства ContentRepository.GetLanguageBranches<PageData>(ContentReference)