12
我知道已經有很多類似的問題,但我花了數小時試圖弄清楚這一點,沒有其他答案似乎幫助!DropDownListFor - 顯示一個簡單的字符串列表
我想只是使用MVC在下拉列表中顯示字符串列表。這真的很難嗎?我沒有「文本」和「值」分隔(MVC似乎需要一個) - 顯示給用戶的字符串是我的價值。
我已經得到了迄今爲止以下內容:
控制器:
public ActionResult Index()
{
return View(new HomeViewModel());
}
視圖模型:
public class HomeViewModel
{
public HomeViewModel()
{
Items = new SelectList(new[]
{
new SelectListItem { Text = "One", Value = "One" },
new SelectListItem { Text = "Two", Value = "Two" },
});
}
public SelectList Items { get; set; }
}
查看:
<% using (Html.BeginForm()) { %>
<% Html.DropDownListFor(x => x.Items, Model.Items); %>
<input type="submit" value="Go!" />
<% } %>
但什麼我似乎導致顯示下拉列表。我究竟做錯了什麼?
阿爾,多麼愚蠢的錯誤!現在我可以看到一個包含2個項目的下拉列表,但它們都說System.Web.Mvc.SelectListItem。看起來我的SelectList的構造函數調用有問題嗎? – Grokys 2010-08-02 11:29:51
哦,是的 - 在構造函數中,你必須指定你想在DropDown中顯示哪些字段。否則,你得到的是默認的SelectListItem.ToString()。 – Yakimych 2010-08-02 11:39:21
謝謝你,你的更新2正是我一直在尋找的:) – Grokys 2010-08-02 13:58:52