我有一個應用程序查詢數據庫並獲得DataTable
。我需要在我的視圖中創建一個<select>
,其<option>
元素依賴DataTable
中的DataRow
元素。我的問題是,有沒有辦法使用HTML助手來建立這種類型的<select>
?如果是這樣,怎麼樣?我對HTML助手不是很熟悉。使用DataRow元素在MVC 4中填充SELECT元素
謝謝!
我有一個應用程序查詢數據庫並獲得DataTable
。我需要在我的視圖中創建一個<select>
,其<option>
元素依賴DataTable
中的DataRow
元素。我的問題是,有沒有辦法使用HTML助手來建立這種類型的<select>
?如果是這樣,怎麼樣?我對HTML助手不是很熟悉。使用DataRow元素在MVC 4中填充SELECT元素
謝謝!
有一種方法。首先,把你的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)
的你正在尋找的幫手是這些
@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)
如果我沒有什麼模式?我只使用ViewBag。另外,我不明白CarId的目的。謝謝! – 2013-03-07 19:25:19
你可以把它放在ViewBag的罰款,但你需要在某個地方保持選定的值,當表單被張貼時,'CarId'將在下拉菜單中保存選定項目的值:) – mattytommo 2013-03-07 19:26:41