より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

ASP.NET Core MVCでEnumDropDownListForは?

.NET Framework時代のASP.NET MVCにはHtmlHelperにEnumDropDownListForが存在しました。

docs.microsoft.com

www.buildinsider.net

@Html.EnumDropDownListFor(model => model.Category)

ですが、ASP.NET Core MVCではこのメソッドは存在しないようです。

私は、以下のように自分の手で書いてました。

            <select class="form-control" data-val="true" data-val-required="The EnumName field is required." id="EnumName" name="EnumName">
                @foreach (EnumName item in Enum.GetValues(typeof(EnumName)))
                {
                    var enumNameValue = (int) item;
                    var enumNameName = item.ToString();
                    <option value="@enumNameValue">@enumNameName</option>
                }
            </select>

ですが、以下のサイトを見ると

stackoverflow.com

以下でいけるみたいです。

<select asp-for="EnumName" asp-items="Html.GetEnumSelectList(typeof (EnumName))" class="form-control"></select>