Я пытаюсь заполнить Html.DropDownList в MVC. Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть дочерняя таблица с именем «ODSessionTopics», которая имеет внешний ключ (ID) в таблице «ODSessionType», которая содержит заголовки для тем. Вот мои модели:Заполнение SelectList родительскими/дочерними таблицами
public class ODSessionTopic
{
public int ID { get; set; }
public string Description { get; set; }
// foreign key
public int ODSessionTypeID { get; set; }
// navigation property
public virtual ODSessionType ODSessionType { get; set; }
}
public class ODSessionType
{
public int ODSessionTypeID { get; set; }
public string Description { get; set; }
// navigation property
public virtual ICollection<ODSessionTopic> ODSessionTopics { get; set; }
}
Я использую следующий код для заполнения ViewBag:
ViewBag.ODSessionTopicID = new SelectList(db.ODSessionTopics, "ID", "Description", "ODSessionTypeID", oDSession.ODSessionTopicID);
Вот данные OD Session Тема:
ID Description ODSessionTypeID
---------------------------------------------------
1 Internal Marketing 1
2 Team Development 1
3 Department Retreat 2
4 Community Service 2
Здесь тип сеанса OD данные:
ODSessionTypeID Description
-------------------------------------
1 Plan
2 Action
Это мои результаты:
1
Internal Marketing
Team Development
2
Department Retreat
Community Services
Вот результаты, которые я пытаюсь достичь:
Plans
Internal Marketing
Team Development
Actions
Department Retreat
Community Services
Код мнение
@Html.DropDownList("ODSessionTopicID", null, "-- Session Type --", htmlAttributes: new { @class = "form-control" })
В основном, это захват внешнего ключа ODSessionTypeID в ODSessionTopic table и группировка по этому значению. Что мне нужно, так это захватить описание из таблицы ODSessionType. Это возможно? Как темы, так и типы редактируются, и к ним привязана CRUD-логика, и именно так я пришел к этому дизайну в первую очередь.
Какой результат будут ваши желания? Если вы просто хотите отобразить 4 элемента, не сгруппированных, то это должен быть 'new SelectList (db.ODSessionTopics,« ID »,« Описание »)', но неясно, какое свойство модели вы пытаетесь связать (показать, как вы генерируете раскрывающийся список в представлении. И что вы подразумеваете под _grab описанием из таблицы ODSessionType_? –
Я хочу, чтобы выпадающее меню отображало результаты из таблицы ODSessionTopic (показано правильно на изображении выше) и заголовков (ODSessionType. Описание) из таблицы ODSessionType. Таблицы связаны внешним ключом ODSessionTypeID, поэтому я хочу, чтобы раскрывающийся список в основном запрашивал таблицу ODSessionType с помощью ODSessionTypeID и сопоставлял ее с описанием (ODSessionType.Description). Вот выпадающий код: Html.DropDownList ("ODSessionTopicID", null, "- Тип сеанса -", htmlAttributes: new {@class = "form-control"}) –
Редактировать вопрос с помощью вашего кода. Все еще не имеет смысла. Что такое 'oDSession.ODSessionTopicID' (ни одна из ваших моделей не имеет свойства с именем' ODSessionTopicID') И какое свойство вы пытаетесь связать? –