在控制器中:
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。
我真的很感激能帮助我的人。
答案 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
);