第一种情况。view视图加载出来时就有值,,实现步骤如下
1.在操作的界面Model中建立public List<SelectListItem> xxx(取名){ get; set; }
2.在Model中的构造函数中实例化this.Courses = new List<SelectListItem>();实例一个集合化
注:1和2是在同一个Model中完成的。
3.控制器中 :
(1)从数据库中查询出 所有数据(通过接口实现)
(2)使用foreach遍历出来在实例化一个变量(类型为SelectListItem)
例子为:
var courses = _courseService.GetAllCourses();//从数据查询数据 foreach (var course in courses) { SelectListItem li = new SelectListItem();//实例化一个变量 li.Text = course.CourseName; li.Value = course.Id.ToString(); model.Courses.Add(li); }
4.界面中
@Html.DropDownListFor(x => x.CourseId(name)//通过id再去查询name
第二种情况,view视图加载出来时没有值,实现步骤如下:
同第一种只有控制器中有所差别:
例子:
var model = new SCListModel();//中间model var courses=_courseService.GetAllCourses(); SelectListItem li = new SelectListItem(); li.Text = ""; li.Value = ""; model.SCNames.Add(li); foreach (var item in courses) { li = new SelectListItem(); li.Text = item.CourseName; li.Value = item.Id.ToString(); model.SCNames.Add(li);
4.界面
<tr> <td class="adminTitle"> <span>课程名称:</span> </td> <td class="adminData"> @Html.DropDownListFor(model => model.CourseId, Model.SCNames)//id对于的值 </td> </tr>