Похоже, ваша проблема в том, что enum определен с начальным индексом 1:
public enum ItemTypes
{
Add = 1,
Remove = 2
}
Поскольку перечислитель с индексом 0 внутри перечисления выше не указан, помощник включает нулевой индекс в SelectListItem
списке сбора,следовательно, в качестве выбранного по умолчанию элемента отображается пустая опция (помните, что и перечисление, и коллекции используют индексацию с нуля, следовательно, у первого элемента индекс равен нулю).
Либо вы можете определить перечислитель с индексом 0, чтобы установить выбранный по умолчаниюзначение:
public enum ItemTypes
{
Nothing = 0,
Add = 1,
Remove = 2
}
Или используйте стандартный DropDownListFor
помощник, используя другое свойство, определенное из SelectListItem
для привязки значений перечисления:
Модель
public List<SelectListItem> ActionList { get; set; }
Контроллер
ActionList = Enum.GetNames(typeof(ItemTypes)).Select(x => new SelectListItem { Text = x, Value = x }).ToList();
Вид
@Html.DropDownListFor(model => model.Actions, Model.ActionList, new { @id = "actions", @class = "form-control" })
Ссылка:
C # Типы перечисления (MS Docs)