2015-09-17 75 views
0

在控制器:从一个Viewbag选择列表中创建多个DROPDOWNLIST

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

我建议你不要使用ViewBag用于这一目的。我的意思是强类型有什么问题,当你需要这样一个你已经知道哟可能反复使用的下拉菜单时,那么最好为它们中的每一个都建立一个数据模型,并且在需要时直接从剃刀上加载它们。这只是一个更清洁的方法。 – Transcendent

+0

好的,我会试试。但看到有人对我的问题投了反对票。我不知道为什么! –

+1

我还没有投票表决你的问题! – Transcendent

回答

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 
); 
+0

谢谢..你做了我的一天..但请注意,有人下了我的问题。 –