ASP.Net MVC Добавить элементы в выпадающий список - PullRequest
3 голосов
/ 05 июня 2009

В настоящее время в представлении моей страницы есть выпадающий список, привязанный к коллекции из контроллера. Это работает нормально, однако я хочу вставить элемент в верхнюю часть выпадающего списка, которого нет в моей коллекции, например, список в настоящее время получает следующие элементы

Open
Closed

Я хочу добавить третий параметр «Все», но не хочу добавлять этот параметр в свою базу данных. В Webforms я бы просто связал элемент управления, а затем вставил другой элемент, однако кажется, что это невозможно с MVC. Правильно ли я думаю, что мне понадобится добавить некоторый Javascript в представление, чтобы добавить этот новый элемент после привязки выпадающего списка?

Спасибо

Ответы [ 3 ]

9 голосов
/ 05 июня 2009

Нет. Создайте свои данные в виде списка элементов 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;

Со стороны вида:

   <%= Html.DropDownList( "TableID",
                          (IEnumerable<SelectListItem>)ViewData["TableSelect"] ) %>
0 голосов
/ 16 мая 2018

Более новая реализация

var list = _db.Status.ToList();
list.Add(new Status(){DevelopmentStatusID = -1, DevelopmentStatusDesc = "All"});
var result = list.OrderBy(d => d.StatusID).ToList();

ViewBag.StatusID = new SelectList(result, "StatusID", "StatusDesc");

Тогда в index.html

    @Html.DropDownList("StatusID", null, htmlAttributes: new {@class = "form-control"})
0 голосов
/ 05 июня 2009

Простой

Вы можете сделать это как хотите в контроллере.

и передайте его в viewdata.

другой вариант прямо на странице просмотра.

<%= Html.DropDownList("DropDown","all" )%>

Но вы можете добавить только одну опцию ..

Убедитесь, что вы не храните добавленные опции в вашей базе данных, верно? поэтому перед сохранением проверьте значение параметра в действии и примените логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...