привязка выпадающего списка mvc к основному списку - PullRequest
3 голосов
/ 21 декабря 2011

Я пытаюсь добавить базовый раскрывающийся список к моему виду с простым выбором "Пожалуйста, выберите", "Да", "Нет"

По умолчанию я хочу выбрать «Пожалуйста, выберите».

Я создаю простой список выбора и добавляю в него 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"})

Однако каждый раз, когда страница загружается, выбирается идентификатор "False".

На уровне контроллера я вижу, что выбран идентификатор 0, однако каким-то образом представление меняет выбранный элемент на последний элемент в списке.

Что мне нужно изменить?

Я просто тестирую с использованием идентификатора 0,1,2, и он работает, однако я хотел бы иметь возможность использовать true false, когда он сопоставляется с полем bool в моей модели.

Ответы [ 2 ]

2 голосов
/ 21 декабря 2011

Вам необходимо изменить список выбора, как показано ниже:

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

обратите внимание, что "0" в конструкторе SelectList является строкой и заключено в двойные кавычки.

0 голосов
/ 21 декабря 2011

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

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

MSDN Reference

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