Привязка выпадающего списка с моделью, выдающей ошибку

#c# #asp.net-mvc #model-view-controller #razor

#c# #asp.net-mvc #model-view-controller #razor

Вопрос:

Я пытаюсь привязать выпадающий список к модели, используя entity framework, и я получаю сообщение об ошибке:

 System.InvalidOperationException: 'There is no ViewData item of type 'IEnumerable<SelectListItem>' that has the key 'OfficeName'.'
  

Ниже приведен мой класс модели:

  public partial class bookAssignment_new
        {
            public int ID { get; set; }
            public Nullable<int> Book { get; set; }
            public Nullable<int> OfficeID { get; set; }
            public string Office { get; set; }
            public IEnumerable<SelectListItem> OfficeName { get; set; }
      }
  

Ниже мой контроллер:

 public ActionResult Index()
        {
            var model = new bookAssignment_new();
            using (BookAssignmentEntities db = new BookAssignmentEntities())
            {
                var dbData = db.OfficeNames.ToList();
                model.OfficeName = GetSelectListItems(dbData);
            }
            return View();
        }
    
    
        private IEnumerable<SelectListItem> GetSelectListItems(IEnumerable<OfficeName> elements)
            {
                var selectList = new List<SelectListItem>();
                foreach (var element in elements)
                {
                    selectList.Add(new SelectListItem
                    {
                        Value = element.OfficeID.ToString(),
                        Text = element.Office.ToString()
                    });
                }
                return selectList;
            }
  

Я вижу, что правильные данные возвращаются GetSelectListItems().

Мое представление имеет следующий код:

  <div class="form-group">
        @Html.DropDownList("OfficeName", Model.OfficeName)
       
    </div>
  

Я получаю указанную выше ошибку в представлении. Моя таблица OfficeName выглядит так:

введите описание изображения здесь

ниже приведен скриншот ошибки:

введите описание изображения здесь

любая помощь будет оценена.

Комментарии:

1. viewBag.OfficeName = GetSelectListItems(dbData); нет model.OfficeName = GetSelectListItems(dbData); !

2. Я изменил код. Я все еще получаю ту же ошибку.

3. Я, вероятно, неправильно понял, но что-то не так с тем, как вы создаете локальную переменную с именем model и не используете ее после ее настройки. Представление не будет иметь к нему доступа.

4. Я очень новичок в MVC. У меня просто шесть элементов внутри таблицы office. Я просто хочу отобразить эти шесть элементов в виде выпадающего списка