1. ホーム
  2. c#

[解決済み] 簡単なHtml.DropDownListFor()の書き方は?

2022-03-06 15:15:30

質問

ASP.NET MVC 2で、静的なオプションを与える非常に単純なドロップダウンリストを書きたいと思います。例えば、"Red", "Blue", "Green" から選択できるようにしたいのです。

どのように解決するのですか?

参照 このMSDN記事 Stack Overflowでの使用例 .

例えば、以下のようなLinq/POCOクラスがあるとします。

public class Color
{
    public int ColorId { get; set; }
    public string Name { get; set; }
}

そして、次のようなモデルがあるとします。

public class PageModel 
{
   public int MyColorId { get; set; }
}

そして最後に、次のような色のリストがあるとしよう。これらはLinqクエリから来ることも、静的なリストから来ることもできます。

public static IEnumerable<Color> Colors = new List<Color> { 
    new Color {
        ColorId = 1,
        Name = "Red"
    },
    new Color {
        ColorId = 2,
        Name = "Blue"
    }
};

ビューでは、このようにドロップダウンリストを作成することができます。

<%= Html.DropDownListFor(n => n.MyColorId, 
                         new SelectList(Colors, "ColorId", "Name")) %>