从一个Viewbag选择列表创建多个Dropdownlist

时间:2015-09-17 18:31:11

标签: c# asp.net asp.net-mvc asp.net-mvc-4 viewbag

在控制器中:

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

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

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

但是在视图中我想从这个viewbag创建三个选择列表。这样一位教师在主题列表中具有三个主题的经验。但是每个DropDownList名称都不是默认的Viewbag名称" SUBJECT_NO"。它将是

  

" SUBJECT_NO1"," SUBJECT_NO2" ," SUBJECT_NO3"。

并且在DbModel中,教师类将有​​三列具有这些名称。我不想为一个DbModel表创建这么多的viewbag。在此视图和操作中,主题将有5种不同的选项。为此,我必须为5个DbModel类创建5 * 3 = 15 viwbag。我想这只有5个Viewbags。

我真的很感激能帮助我的人。

1 个答案:

答案 0 :(得分:2)

@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
);