Я новичок в бритве MVC и MVC в целом. У меня есть EnumDropDownListFor, который отображает страны на соответствующем языке. То, что мне нужно, это выпадающий список, отсортированный в альфа-порядке в зависимости от различных значений resx локализации.
в моем cshtml у меня есть:
<div>@Html.LabelFor(m => m.Country)</div>
@Html.EnumDropDownListFor(m => m.Country)
У меня есть enum CountryModel.cs:
//[Display(Name = "None", ResourceType = typeof(Web.Models.CountryResources.Fixtures))]
//None = 0,
[Display(Name = "Canada", ResourceType = typeof(Web.Models.CountryResources.Fixtures))]
Canada = 1,
[Display(Name = "Mexico", ResourceType = typeof(Web.Models.CountryResources.Fixtures))]
Mexico = 2,
[Display(Name = "UnitedStates", ResourceType = typeof(Web.Models.CountryResources.Fixtures))]
UnitedStates = 3
Значения хранятся в файлах resx для разных языков. Для английского языка это отображается в правильном порядке, основанном на порядке в модели страны, но для французского языка это должно быть (значения, полученные из country.fr.resx):
Канада
États Unis (который является США)
Мексика (которая является Мексикой)
вместо:
Канада
Mexique
États Unis
В моем списке 37 стран, и мы можем добавить его в любое время. Целое число выбранной страны записывается в БД для последующего поиска / редактирования.
Так как же заставить EnumDropDownListFor сортировать по значениям resx? Должен ли я использовать что-то другое, чем EnumDropdownListFor? Я видел примеры получения значений из resx, и это работало, но я не нашел примеров, как заставить их сортировать соответствующим образом на основе этих значений. Спасибо!
Редактировать: забыл сказать, что моя модель имеет:
[Display(Name = nameof(Account.Account.Country), ResourceType = typeof(Account.Account))]
public CountryModel Country { get; set; }