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??

IEnumerable<SelectListItem> in C# mvc

如果您正在使用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; }
}