我正在尝试在 MVC 中填充 Html.DropDownList。我遇到的问题是我有一个名为“ODSessionTopics”的子表,它具有“ODSessionType”表的外键(ID),其中包含主题的标题。这是我的模型:
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 会话主题数据:
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" })
基本上,它在 ODSessionTopic 表中获取 ODSessionTypeID 外键并按该值分组。我需要它做的是从 ODSessionType 表中获取描述。这可能吗?主题和类型都是可编辑的,并且附加了 CRUD 逻辑,这就是我最初到达此设计的方式。