0

这是我的代码:

ViewBag.idprofesor = new SelectList(db.Profesor, "IDProfesor", "nombre");

此代码生成一个下拉列表,仅显示数据库中教师(教授)的姓名(名词),id 像下拉列表一样显示教师的姓名和姓氏。

4

2 回答 2

1

您可能必须手动创建一个 SelectListItems 列表,以手动指定所需的字段。像这样:

List<SelectListItem> professors = new List<SelectListItem>();
foreach(var professor in db.Professors) {
    professors.Add( new SelectListItem() { Text = professor.Fn + " " +  professor.Ln, Value = professor.Id } );
}
ViewVag.Professors = professors;

那么在你看来:

Html.DropDownListFor( m => m.Professor, ViewBag.Professors );
于 2012-06-19T03:14:54.373 回答
0

您只需将SelectListItem的 IEnumerable 传递给构造函数。使用 Linq 从Professor集合中进行选择:

@{
    var mySelectList =
        db.Professor.Select(prof => new SelectListItem(
            Text = prof.lastName + ", " + prof.nombre,
            Value = prof.IDProfessor
            )
        ).AsEnumerable();
}   

使用 Razor,您应该能够像这样创建下拉列表:

@Html.DropDownList("mydropdownlist", mySelectList)

要将其绑定到模型中的属性,语法略有不同:

@Html.DropDownListFor(model => model.someproperty, mySelectList)
于 2012-06-19T03:14:00.303 回答