IEnumerable<SelectListItem> in C# mvc
本文关键字:mvc in SelectListItem lt IEnumerable gt | 更新日期: 2023-09-27 18:07:58
我有两个表,Student (name, id, UniversityID)和Universities (id, name)。一个有学生的详细信息,另一个有大学的信息。在第一个表中,我存储与Universities.ID
匹配的Student.UniversityID
。在学生详细信息的表单中,大学以下拉菜单的形式显示。
我的问题是,当我在编辑一个特定的学生时,如何在前一个表单中选择UniversityName,同时添加学生详细信息,预选。
到目前为止,我所做的是像这样填充下拉菜单
public ActionResult Edit(int? id)
{
IEnumerable<SelectListItem> items = db.Universities
.Select(c => new SelectListItem
{
Value = c.UniversityId.ToString(),
Text = c.UniversityName.ToString(),
Selected = true,
});
ViewBag.UniversityID = items;
}
我想最好的办法是基于
在两个表之间进行连接。{select UniversityName from Universities Join Student where Student. universityid =Universities。ID}
任何想法如何做到这一点,在Linq连接这两个表,并选择适合这个条件的UniversityName,使用IEnumerable SelectListItem??
如果您正在使用EntityFramework,您可以指定ForeignKey约束,在这种情况下,您可以这样做:
db.Students.Select(student => new {
UniversityName = student.University.UniversityName
})
要添加ForeignKey约束,请在您的EntityFramework数据实体中执行:
[Table("Student")]
public class Student
{
[Key] public int Id { get; set; }
public string Name { get; set; }
public int UniversityId { get; set; }
[ForeignKey("UniversityId")] public University University { get; set; }
}