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

第一种情况。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>
原文地址:https://www.cnblogs.com/wfaceboss/p/6040957.html