2015-07-07 3 views
0

Наткнулся на этом выпадающем меню:DropDownListFor появляется заселить волшебно

@Html.DropDownListFor(c => c.RabbitId, null, "Please Select Bunny...", new {@class = "Wibble"})

Параметр SelectList это передается нуль, но она по-прежнему появляется заселить с полным списком Bunnys.

Я подозреваю, что это потому, что c, Model, является Entity (автор использует Entity в качестве модели). Но я не могу быть уверен. Я не могу найти это поведение в любом месте.

Я удивлен, что он работает с SelectList null. Есть идеи?

+0

Загружается ли в javascript? – DLeh

+0

нет, ссылки на него отсутствуют на странице. – NibblyPig

+0

, если в качестве списка выбора предоставляется 'null', то записей не будет. должно быть что-то в javascript, который загружает его. – DLeh

ответ

0

Очень плохо документировано в MSDN, но я нашел ответ. Если указан нуль, Html.DropDownList будет выглядеть в ViewData (ViewBag) для записи с тем же ключом, который содержит SelectList данных.

Я надеюсь, что это поможет кому-то в будущем. Это совершенно неинтуитивно.

+1

Html.DropDownListFor() не использует ViewData, но Html.DropDownList() делает. Вы должны отредактировать свой вопрос или ответ, чтобы уточнить, поскольку это два отдельных помощника, причем последний используется в основном в более старых версиях MVC. – br4d

+0

Неверный код, который у меня есть DropDownListFor, и он вытаскивает его из ViewBag. – NibblyPig

Смежные вопросы