从 ASP.NET CORE 中的 ENUM 字段填充选择选项时添加默认的第一个选项作为选择元素

问题描述 投票:0回答:1

enum
字段定义为:

public enum HasSomething
{
    Installed_by_Installer,
    Not_Installed_by_Installer,
    Not_Present
}

我正在尝试将其添加到

select
元素中的选项,如下所示:

<select asp-for="HasSomething" asp-items="Html.GetEnumSelectList<HasSomething>()" class="form-control">
    <option selected hidden>---Select---</option>
</select> 

第一个选项(---选择---)丢失了。因此,第一个值

Installed by Installer
自动成为帖子上选定的值,这显然是错误的输入。有人可以指导如何克服这个问题吗?

提前致谢。

html asp.net-mvc asp.net-core
1个回答
0
投票

要实现此目的,必须将模型属性定义为可为空并将其设置为

null

假设视图模型声明如下:

public class MyModel
{     
    public HasSomething? Something { get; set; } 
}

然后在视图中使用:

@model MyModel

<select class="form-control"
        asp-for="Something"
        asp-items="@Html.GetEnumSelectList<HasSomething>()">
    <option selected>---Select---</option>
</select>
© www.soinside.com 2019 - 2024. All rights reserved.