ASP.NET MVC 2 - Флажки - PullRequest
       7

ASP.NET MVC 2 - Флажки

0 голосов
/ 11 июня 2010

Я использую string[] roles = Roles.GetAllRoles(), чтобы получить строку [] всех ролей членства ASP.NET для моего приложения.Я отправляю роли моему представлению в ViewData и использую foreach для создания набора флажков, используя <%: Html.CheckBox("RoleCheckBox") %>.Есть 3 роли, и мой взгляд делает 3 флажка.Когда я делаю View / Source, я вижу флажки и соответствующие им скрытые теги.Все они одинаковы, поэтому есть 6 тегов с именем «RoleCheckBox» - 3, которые отображают флажки, и 3, которые скрыты.

Проблема возникает, когда я отправляю форму обратно на контроллер и связываюрезультаты - что-то вроде public ActionResult Create(Person person, string[] RoleCheckBox).Я получаю ЧЕТЫРЕ строки и понятия не имею, откуда берется четвертая строка («ложь»).Я мог бы провести некоторое тестирование, попробовав различные комбинации проверок, чтобы увидеть, какая из них (надеюсь) не меняется, и игнорировать ее, но это просто уродливо.

Кто-нибудь знает, почему это происходит?* Спасибо,

Джей

1 Ответ

0 голосов
/ 11 июня 2010

Дополнительное «ложь» происходит потому, что при установке флажка создается пара (массив), например «true, false».Вторая ложь исходит из скрытого значения.Если он не отмечен, вы не получите первое значение, потому что флажок ничего не возвращает.

Эта ссылка объясняет это более подробно и рекомендует циклически перебирать ключи формы и использовать «GetValues ​​()» для каждого элемента, а затем получать первый элемент в результирующем массиве.*

...