在 ASP.NET Core 下拉列表中显示部分枚举列表

Sun*_*eep 3 c# enums asp.net-core-mvc asp.net-core

假设我有一个这样的枚举:

public enum ContactPhoneType
{
    [Display(Name = "")]
    None = 0,

    [Display(Name = "Home Phone")]
    HomePhone = 1,

    [Display(Name = "Cell/Mobile Phone")]
    CellMobile = 2,

    [Display(Name = "Work Phone")]
    Work = 3,

    [Display(Name = "Family Member")]
    FamilyMember = 4,

    [Display(Name = "Fax Number")]
    Fax = 5,

    [Display(Name = "Other")]
    Other = 6,
}
Run Code Online (Sandbox Code Playgroud)

我只想显示列表中的前 6 个。如何隐藏最后一个?

为了显示所有项目,我使用了以下代码:

<div class="form-group">
   <label class="col-sm-4 control-label" asp-for="PhoneNumberType"></label>
      <div class="col-sm-6">
        <select asp-for="PhoneNumberType" asp-items="Html.GetEnumSelectList<ContactPhoneType>()" class="form-control"></select>
       </div>
</div>
Run Code Online (Sandbox Code Playgroud)

Ehs*_*jad 5

如果该方法返回继承自 的集合IEnumerable<T>,则可以使用Take()方法按以下方式选择其中的前 N ​​个元素:

asp-items="Html.GetEnumSelectList<ContactPhoneType>().Take(6)"
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你!