创建下拉列表c#mvc3

时间:2011-12-09 09:47:09

标签: c# asp.net-mvc-3

我正在mvc3 c#中实现一个后台,我希望有一个字段是一个包含3个字段“ComingSoon,Out,Showing”的下拉列表。这些字段不是任何类的一部分。我必须创建一个帮助类吗? 我试过以下

<% List<string> foo = new List<string>();
   foo.Add("Showing");
   foo.Add("ComingSoon);"
   foo.Add("Out");

   Html.DropDownList(foo, Model.Status); %>

状态是数据库中需要更新的字段。

3 个答案:

答案 0 :(得分:4)

Html.DropDownList("Status", 
    new SelectListItem[]{ new SelectListItem{ Text= "Showing", Value="Showing"},
    //same for others
}); 

答案 1 :(得分:1)

由于你正在使用模型绑定,我建议:

<%: Html.DropDownListFor(model=> model.Status, 
                         new List<SelectListItem>() { 
                                new SelectListItem{ Text= "Showing", Value="Showing"},
                                new SelectListItem{ Text= "ComingSoon", Value="ComingSoon"},
                                new SelectListItem{ Text= "Out", Value="Out"}
                         }); %>

对于模型绑定,总是使用末尾的“For”,它会使Post方法更容易+如果名称不存在,您将得到反馈。

答案 2 :(得分:0)

您可以通过这种方式创建下拉列表。

@{          
    List<KeyValuePair<int, string>> dropdownList =
                                                        new List<KeyValuePair<int, string>>();
                dropdownList.Add(new KeyValuePair<int, string>(0,"Showing"));
                dropdownList.Add(new KeyValuePair<int, string>(1,"ComingSoon"));
                dropdownList.Add(new KeyValuePair<int, string>(2,"Out"));
                SelectList selectList = new SelectList(dropdownList, "key", "value", 0);

}

@Html.DropDownList("foo", selectList)