1

我在 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 中实现相同的功能?

4

2 回答 2

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。

于 2012-12-19T14:01:26.660 回答
2

您可以使用Html.DropDownList()Html.DropDownListFor()。两种方法都以 aIEnumerable<SelectListItem>作为参数。“for”选项采用Func指向模型中集合的 a,而非 for 选项直接采用集合。可以像这样创建一个集合:

var selectList = new SelectListItem[]
{
    new SelectListItem()
    {
        Selected = true,
        Text = "Text",
        Value = "Value"
    },

    new SelectListItem()
    {
        Selected = true,
        Text = "Text1",
        Value = "Value1"
    },
};

不用说,您也可以<select><option>...使用普通的旧 HTML 进行基本操作,但是通过将集合SelectListItem放入您的模型并使用@Html.DropDownListFor(),您可以利用使 MVC 如此出色的强类型模型绑定。

于 2012-12-19T14:07:17.617 回答