第一种情况。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>