Asp.net mvc 3 将mvc下拉列表绑定到基本列表

Asp.net mvc 3 将mvc下拉列表绑定到基本列表,asp.net-mvc-3,Asp.net Mvc 3,我试图添加一个基本的下拉列表到我的视图中,只需简单的“请选择”、“是”、“否”选项 默认情况下,我希望选择“请选择” 我创建了一个简单的选择列表,并将3个项目添加到其中 var list = new SelectList(new[] { new{ID="0",Name="- Please Select -"},

我试图添加一个基本的下拉列表到我的视图中,只需简单的“请选择”、“是”、“否”选项

默认情况下,我希望选择“请选择”

我创建了一个简单的选择列表,并将3个项目添加到其中

   var list = new SelectList(new[]
                                      {
                                          new{ID="0",Name="- Please Select -"},
                                          new{ID="True",Name="Yes"},
                                          new{ID="False",Name="No"},
                                      },"ID","Name",0);
        ViewBag.List= list;
我的看法

   @Html.DropDownList("Terms", ViewBag.List as SelectList, new { @class = "drop"})
但是,每次加载页面时,都会选择ID“False”

在控制器级别,我可以看到ID 0已被选中,但视图正在以某种方式将所选项目更改为列表中的最后一个项目

我需要改变什么


我只是使用ID 0,1,2进行测试,它可以工作,但是我希望能够使用true false,因为它映射回我模型中的布尔字段。

您需要更改选择列表,如下所示:

var list = new SelectList(new[]
                                      {
                                          new{ID="0",Name="- Please Select -"},
                                          new{ID="True",Name="Yes"},
                                          new{ID="False",Name="No"},
                                      }, "ID", "Name", "0");

请注意,SelectList的构造函数中的“0”是字符串,并用双引号括起来。

您最好为下拉列表使用不同的构造函数,而不是在控制器/模型中设置选项标签。例如,如果要指定选项标签,可以这样做:

@Html.DropDownList("Terms", ViewBag.List as SelectList, "- Please Select -", new { @class = "drop" })