使用枚举填充下拉列表

Populating a dropdownlist with enum

我正在尝试用 enum 值填充下拉列表,但我遇到了 运行 问题。这是我的 class

public class Project
    {
        ...
        public Currencies Money { get; set; }

        public enum Currencies
        {
            [Display(Name = "Euro")]
            Euro = 1,
            [Display(Name = "USD")]
            USD = 2
        }

这是我的观点

@model Projects.Domain.Project

@{
    ViewData["Title"] = "Create";
}

<br />
<p style="font-weight:bold;">Add new project</p>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="Create">            
            <div class="form-group">
                <select asp-for="Money" asp-items="@Html.GetEnumSelectList<Currencies>()"></select>
            </div>
        </form>
    </div>
</div>

但是我收到一条错误消息说 The type or namespace currencies could not be found. 如果我用 Money 替换 Currencies 也是一样的。填充下拉列表的正确方法是什么?

您可以尝试使用全名:Projects.Domain.Project.Currencies

Select代码:

 <select asp-for="Money" asp-items="@Html.GetEnumSelectList<Projects.Domain.Project.Currencies>()"></select>

或使用命名空间:

@using Projects.Domain

Select代码:

 <select asp-for="Money" asp-items="@Html.GetEnumSelectList<Project.Currencies>()"></select>