#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. Я просто хочу отобразить эти шесть элементов в виде выпадающего списка