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()。どちらのメソッドもIEnumerable<SelectListItem>パラメータとして a を取ります。「for」オプションはFuncモデル内のコレクションを指す を受け取りますが、非 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 に答える