Html.GetEnumSelectList - Получение значений Enum с пробелами

Я использовал asp-items="@Html.GetEnumSelectList(typeof(Salary))"в своем представлении Razor с тегом select, чтобы заполнить значения списка на основе enum Salary.

Однако в моем перечислении содержатся некоторые элементы, в которых я хотел бы иметь пробелы внутри. Например, один из элементов PaidMonthly, но когда я показываю это использование Html.GetEnumSelectList, я бы хотел, чтобы он отображался как "Paid Monthly"(с пробелом в нем)

Я попытался использовать Descriptionатрибут над каждым членом в перечислении, однако, когда поле выбора отображает его, оно использует только исходное значение.

Может ли кто-нибудь помочь мне в этом вопросе?

(Образец моего кода) -> Использование ASP.NET Core 1.0

Razor Вид:

<select asp-for="PersonSalary" asp-items="@Html.GetEnumSelectList(typeof(Enums.Salary))">
</select>

Enum Зарплата:

public enum Salary
{
    [Description("Paid Monthly")]
    PaidMonthly = 1,
    PaidYearly = 2
} 

c#,html,razor,enums,asp.net-core-mvc,

6

Ответов: 1


13 принят

Мне удалось это решить. Мне просто пришлось использовать другой метод GetEnumSelectList<>, и в представлении Razor нам нужно использовать атрибут Display.

Вот код:

Razor Вид:

<select asp-for="PersonSalary" asp-items="Html.GetEnumSelectList<Enums.Salary>()"></select>

Enum Зарплата:

public enum Salary
{
    [Display(Name="Paid Monthly")]
    PaidMonthly = 1,
    PaidYearly = 2
} 
C #, HTML, бритва, перечислений, asp.net-ядро-MVC,
Похожие вопросы