ASP.Net MVC将项目添加到绑定下拉列表

Gav*_*vin 3 c# asp.net-mvc drop-down-menu

我的页面视图当前有一个下拉列表,它从控制器绑定到一个集合.这工作正常,但我想在下拉列表的顶部插入一个不在我的集合中的项目,例如列表当前获得以下项目

Open
Closed
Run Code Online (Sandbox Code Playgroud)

我想添加"All"的第三个选项,但我不想将此选项添加到我的数据库中.在Webforms中我会绑定控件然后插入另一个项目但是看起来这对MVC来说是不可能的,我是否正确地认为我需要在视图中添加一些Javascript以便在下拉列表绑定后添加这个新项目?

谢谢

tva*_*son 9

否.将数据构造为SelectListItems列表并在控制器中添加前缀.

   var list = db.Table
                .Select( t => new SelectListItem
                              { 
                                  Key = t.ID.ToString(),
                                  Value = t.Name
                              } )
                .ToList();
   list.Insert( 0, new SelectListItem { Key = "-1", Value = "All" } );

   ViewData["TableSelect"] = list;
Run Code Online (Sandbox Code Playgroud)

在观点方面:

   <%= Html.DropDownList( "TableID",
                          (IEnumerable<SelectListItem>)ViewData["TableSelect"] ) %>
Run Code Online (Sandbox Code Playgroud)