我在asp.net中有一个静态下拉列表,如下所示:
<asp:DropDownList runat="server" ID="ddlSource" Width="278px">
<asp:ListItem Value="NONE" Text="- Selct-" />
<asp:ListItem Text="" disabled="disabled">Old customer</asp:ListItem>
<asp:ListItem Text="got sms" Value="OLD_SMS" />
<asp:ListItem Text="got email" Value="OLD_EMAIL" />
<asp:ListItem Text="othe" Value="OLD_OTHER" />
<asp:ListItem Value="" disabled="disabled">Heard in radio</asp:ListItem>
<asp:ListItem Text="radio ad" Value="RADIO_AD" />
<asp:ListItem Text="radio programme" Value="RADIO_SHOW" />
<asp:ListItem Text="other" Value="RADIO_OTHER" />
</asp:DropDownList>
如何在MVC3中实现相同的功能?
答案 0 :(得分:2)
如果它是静态列表,那么您需要做的就是:
<select id="ddlSource" style="width:278px;">
<option value="NONE">- Selct-</option>
<option disabled="disabled">Old customer</option>
<option value="OLD_SMS">got sms</option>
....
</select>
这只是简单的HTML。
答案 1 :(得分:2)
您可以使用Html.DropDownList()
或Html.DropDownListFor()
。两种方法都以IEnumerable<SelectListItem>
作为参数。 “for”选项采用指向模型中集合的Func
,而非for选项直接采用集合。可以像这样创建一个集合:
var selectList = new SelectListItem[]
{
new SelectListItem()
{
Selected = true,
Text = "Text",
Value = "Value"
},
new SelectListItem()
{
Selected = true,
Text = "Text1",
Value = "Value1"
},
};
毋庸置疑,您也可以使用普通的旧HTML进行基本<select><option>...
,但是将SelectListItem
的集合放入模型中并使用@Html.DropDownListFor()
,您可以利用强大的优势-typed模型绑定,使MVC如此出色。