c# - 在 ASP.NET MVC Core 中使用枚举作为下拉列表

标签 c# asp.net asp.net-mvc enums asp.net-core-mvc

我正在尝试使用 Razor View 中的标记助手在 ASP.NET MVC Core 中创建一个带有枚举属性的下拉列表:

这是模型:

public class PersonalMember : Member
{
    [Required, Display(Name = "First Name")]
    public string FirstName { get; set; }

    [Required, Display(Name = "Last Name")]
    public string LastName { get; set; }

    [EnumDataType(typeof(Gender))]
    public Gender GenderType { get; set; }
}

public enum Gender
{
    Male = 1,
    Female = 2
}

这是 View 中表单的一部分:

<div class="form-group">
    <label asp-for="GenderType" class="col-md-2 control-label"></label>
    <div class="col-md-10">
        <select asp-for="GenderType" asp-items="Html.GetEnumSelectList<GenderType>()">
            <option selected="selected" value="">Please select</option>
        </select>
        <span asp-validation-for="GenderType" class="text-danger" />
    </div>
</div>

我遇到的问题是,在 Html.GetEnumSelectList 之后,GenderType 无法识别并显示为错误。

有人知道怎么解决吗?

最佳答案

我认为您不小心使用了 GenderType 而不是 Gender。正确的语法是

<select asp-for="GenderType" asp-items="Html.GetEnumSelectList<Gender>()">
    <option selected="selected" value="">Please select</option>
</select>

关于c# - 在 ASP.NET MVC Core 中使用枚举作为下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41740638/

相关文章:

asp.net - OWIN 如何 Hook ASP.NET 启动

c# - 单个 using 语句,多个 MVC View

c# - 如何为 Worker 服务安排任务

c# - 如何执行WinAppDriverUiRecorder

点击事件上的 javascript 在 img 标签上无法正常工作

asp.net - 配置节 'uri' 无法读取,因为它缺少节声明

javascript - 内联标记 block (@<p>Content</p>) 不能嵌套。只允许一层内联标记

c# - 如何将 bool 公式转换为 CNF 或 DNF

使用调试器时更改的 C# 变量内容

javascript - 使用 javascript 选择一行中除 RadGrid 中的一列之外的所有列