2015-09-17 63 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

謝謝..你做了我的一天..但請注意,有人下了我的問題。 –