C# EPiserver:获取当前页面的可用语言列表
我正在尝试在epserver中获取当前页面的可用语言列表。我目前有以下情况:C# EPiserver:获取当前页面的可用语言列表,c#,episerver,C#,Episerver,我正在尝试在epserver中获取当前页面的可用语言列表。我目前有以下情况: public static IHtmlString HrefLangLinks(this PageData currentPage) { IContentRepository repo = ServiceLocator.Current.GetInstance<IContentRepository>(); var pageLanguagesBra
public static IHtmlString HrefLangLinks(this PageData currentPage)
{
IContentRepository repo = ServiceLocator.Current.GetInstance<IContentRepository>();
var pageLanguagesBranches = repo.GetLanguageBranches<PageData>(currentPage.ContentLink).ToList();
var availablePageLanguages = FilterForVisitor.Filter(pageLanguagesBranches).OfType<PageData>();
// Dictionary<String, String>
return null;
}
公共静态IHtmlString HrefLangLinks(此页面数据当前页面)
{
IContentRespository repo=ServiceLocator.Current.GetInstance();
var pageLanguagesBranches=repo.getLanguageBranchs(currentPage.ContentLink.ToList();
var availablePageLanguages=FilterForVisitor.Filter(pageLanguagesBranches.OfType();
//字典
返回null;
}
然而,目前可用的编程语言包含:{System.Linq.Enumerable.d_u95}
我怎样才能得到语言名称的列表?例如de de、en de或de AT?要获取特定页面的可用语言,可以从当前页面读取
PageData.ExistingLanguages
属性。这将为您提供一个IEnumerable
结果。要从每个CultureInfo
对象中获取语言代码,请阅读CultureInfo.Name
属性
代码如下所示:
currentPage.ExistingLanguages.Select(culture => culture.Name);
谢谢Stefan。作为测试,我尝试了以下方法:var test=currentPage.ExistingLanguages.Select(culture=>culture.Name);变量的内容是:System.Linq.Enumerable+WhereSelectEnumerableInterator`2[System.Globalization.CultureInfo,System.String]。我想我遗漏了什么?那是因为返回类型是一个
可枚举的
,这是在.Net中延迟加载的一种方式。如果您在末尾添加.ToArray()
,您将得到一个字符串数组。啊,我现在明白了。谢谢,我今天晚些时候再试试!