У меня есть переменная под названием culture, которая содержит длинный список всех кодов культур, таких как:
- EN-US
- ан-ГБ
- ан-AU
- де-DE
- и т.д.
Я хотел бы создать раскрывающийся список с текстом и значениями, заполненными этими кодами.
Это то, что я дошел до сих пор, но оно не работает, т.е. мой раскрывающийся список HrefLangName
не содержит записей.
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Globalization;
using EPiServer.Core;
using EPiServer.DataAbstraction;
using EPiServer.DataAnnotations;
using EPiServer.Shell.ObjectEditing;
namespace Site.Models.Blocks
{
[ContentType(GUID = "1ffec6b3-06a3-4fbd-b541-7d02e8302811")]
public class HrefLangBlock : BlockData
{
[Display(Order = 1)]
[SelectOne(SelectionFactoryType = typeof(HrefLangSelectionFactory))]
public virtual string HrefLangName { get; set; }
[Display(Order = 1)]
public virtual string HrefLangLink { get; set; }
}
public class HrefLangSelectionFactory : ISelectionFactory
{
public IEnumerable<ISelectItem> GetSelections(ExtendedMetadata metadata)
{
CultureInfo[] cultures = CultureInfo.GetCultures(CultureTypes.AllCultures);
var list = new List<ISelectItem>();
foreach (var culturecode in cultures)
{
new SelectItem()
{
Text = culturecode.ToString(),
Value = culturecode
};
}
return list;
}
}
}