Я конвертирую enum в IEnumerable<SelectListItem>
в моем контроллере, чтобы использовать его в DropDownListFor
помощнике.
var roleList = EnumHelper.GetSelectList(typeof(UserRole))
.Cast<UserRole>()
.Except(new UserRole[] { UserRole.Admin, UserRole.Corporate })
.Select(e => new SelectListItem { Text = e.ToString(), Value = ((int)e).ToString() });
ViewBag.SelectList = roleList;
и мой код бритвы выглядит как
@Html.DropDownListFor(m => m.RoleID, (IEnumerable<SelectListItem>)ViewBag.SelectList)
, ноЯ получаю сообщение об ошибке
System.InvalidCastException: указанное преобразование недопустимо.
Чтобы убедиться, что это допустимое приведение, я проверил тип данных roleList
в контроллереи выглядит нормально, как показано ниже
во время выполнения. Я гарантировал, что ViewBag.SelectList
не является нулевым при отладке, и нет проблем
, но когда я расширяю результат, я получаю сообщение об ошибке