c# (nop中)下拉列表(有外键)

时间:2022-01-24 02:42:46

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