如何在asp.net MVC razor中生成下拉列表

vai*_*hah 13 razor asp.net-mvc-3 asp.net-mvc-4

在我的剃刀中,我正在生成这样的下拉列表.

    @{
        var listItems = new List<ListItem> 
        { 
              new ListItem { Text = "Home To School", Value = "0" }, 
              new ListItem { Text = "School To Home", Value = "1" } 
        };
    }

@Html.DropDownList("Direction", new SelectList(listItems),new {onchange = "getAlldata()"})
Run Code Online (Sandbox Code Playgroud)

由此生成的HTML就是这样

<select id="Direction" name="Direction" onchange="getAlldata()">
<option>Home To School</option>
<option>School To Home</option>
</select>
Run Code Online (Sandbox Code Playgroud)

但我想生成像这样的HTML

<select id="Direction" name="Direction" onchange="getAlldata()">
<option value="0">Home To School</option>
<option value="1">School To Home</option>
</select>
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点.

ePe*_*man 29

像这样使用它

@Html.DropDownList("Direction", new SelectList(listItems , "Value" , "Text"),new {onchange = "getAlldata()"})
Run Code Online (Sandbox Code Playgroud)

  • 或者简单地说`@ Html.DropDownList("Direction",llistItems,new {onchange ="getAlldata()"})` - 它从现有的第一个'SelectList`创建第二个'SelectList`是无意义的额外的ovrhead (3认同)

Kon*_*ina 5

以下是一些如何DropDownList使用Razor 进行构建的示例,例如使用using的示例SelectListItem

public ActionResult Index()
{
  var db = new NorthwindEntities();
  IEnumerable<SelectListItem> items = db.Categories
    .Select(c => new SelectListItem
                   {
                     Value = c.CategoryID.ToString(), 
                     Text = c.CategoryName
                   });
  ViewBag.CategoryID = items;
  return View();
}
Run Code Online (Sandbox Code Playgroud)

编辑:

检查一下:

@Html.DropDownList("Direction", new List<SelectListItem>
{
  new SelectListItem{ Text = "Home To School", Value = "0" },
  new SelectListItem{ Text = "School To Home", Value = "1" } 
},new {onchange = "getAlldata()"})
Run Code Online (Sandbox Code Playgroud)