从一个 Viewbag select 列表创建多个下拉列表

Creating multiple Dropdownlist from one Viewbag select list

在控制器中:

 DbModel db = new DbModel();
 ViewBag.SUBJECT_NO = new SelectList(db.SUBJECT, "SUBJECT_NO", "SUBJECT_NAME"); 

从这个 viewbag 制作 DropDownList 的默认代码是:

@Html.DropDownList("SUBJECT_NO", String.Empty)

但鉴于我想从这个 viewbag 创建三个 select 列表。这样一位老师在科目列表中的三个科目中都有经验。但是每个 DropDownList 名称都不会是默认的 Viewbag 名称 "SUBJECT_NO"。它将是

"SUBJECT_NO1", "SUBJECT_NO2" , "SUBJECT_NO3".

并且在 DbModel 中,教师 class 将有三列包含这些名称。我不想针对一个 DbModel table 创建这么多视图包。此视图和操作中的主题将有 5 个不同的选项。为此,我必须为 5 个 DbModel classes 创建 5*3=15 个 viwbag。我想只用 5 个 Viewbags。

如果他能帮助我,我将非常感激。

@Html.DropDownList() 有 8 个覆盖。您只需要找到允许您定义源的那个即可。

喜欢

@Html.DropDownList("SUBJECT_NO1", (SelectList)ViewBag.SUBJECT_NO, string.Empty, null)
@Html.DropDownList("SUBJECT_NO2", (SelectList)ViewBag.SUBJECT_NO, string.Empty, null)
@Html.DropDownList("SUBJECT_NO3", (SelectList)ViewBag.SUBJECT_NO, string.Empty, null)

这个正好用到了方法

public static MvcHtmlString DropDownList(
    this HtmlHelper htmlHelper, 
    string name, 
    IEnumerable<SelectListItem> selectList, 
    string optionLabel, 
    object htmlAttributes
);