2013-03-07 81 views
1

我有一個應用程序查詢數據庫並獲得DataTable。我需要在我的視圖中創建一個<select>,其<option>元素依賴DataTable中的DataRow元素。我的問題是,有沒有辦法使用HTML助手來建立這種類型的<select>?如果是這樣,怎麼樣?我對HTML助手不是很熟悉。使用DataRow元素在MVC 4中填充SELECT元素

謝謝!

回答

0

有一種方法。首先,把你的DataTable放入SelectList。將SelectList放在您的模型類中,以及與用戶選擇對應的屬性(我們稱之爲CarId)。

這是你的模型是什麼樣子:

public class MyModel 
{ 
    public SelectList Cars { get; set; } 
    public int CarId { get; set; } 
} 

然後你就可以在你的視圖中使用DropDownListFor HTML輔助方法,像這樣(下面的假設剃刀):

@Html.DropDownListFor(model => model.CarId, Model.Cars) 
+0

如果我沒有什麼模式?我只使用ViewBag。另外,我不明白CarId的目的。謝謝! – 2013-03-07 19:25:19

+0

你可以把它放在ViewBag的罰款,但你需要在某個地方保持選定的值,當表單被張貼時,'CarId'將在下拉菜單中保存選定項目的值:) – mattytommo 2013-03-07 19:26:41

0

的你正在尋找的幫手是這些

@Html.DropDownList 
@Html.DropDownListFor 

我發現最簡單的方法使用它們是有一個可選擇的列表

public IEnumerable<SelectListItem> DDLItems { get; set; } 

我通常從實體填充,但你已經有一個數據表。 你怎麼得到這個數據表?你可以改變它嗎?

DDLItems = new SelectList(context.Table.ToList(),"ValueColumn","TextColumn",Model.Property); 

如果你能做到這一點,那麼你的觀點,你可以做到這一點

@Html.DropDOwnListFor(model => model.Property, DDLList)