Нет никакого объекта ViewData типа 'IEnumerable <SelectListItem>', который имеет ключ 'xxx'

Перейти к

Управление Jenkins -> Консоль скрипта

и введите следующую команду:

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP", "")

затем нажмите «Выполнить». если вы получите результат как «Результат», затем запустите сборку, чтобы проверить формат отчета HTML

84
задан Jimbo 17 May 2010 в 13:22
поделиться

2 ответа

Итак, ответ был получен из некоторых других сообщений об этой проблеме:

Если ваши ViewData содержат SelectList с тем же именем, что и ваш DropDownList , т.е. «submarket_0», помощник Html автоматически заполнит ваш DropDownList этими данными , если вы этого не сделаете укажите второй параметр , который в данном случае является исходным SelectList.

С моей ошибкой произошло следующее:

Поскольку таблица, содержащая раскрывающиеся списки, была в частичном представлении, а ViewData были изменены и больше не содержали SelectList Я упоминал, что HtmlHelper (вместо того, чтобы выдавать ошибку) попытался найти список SelectList под названием «submarket_0» в ViewData (GRRRR !!!), который он ВСЕ ЕЩЕ не смог найти, а затем выдал ошибку на этом :)

Пожалуйста, поправьте меня, если я ошибаюсь

76
ответ дан 24 November 2019 в 08:37
поделиться

Причина не противоречит синтаксису, а не несоответствующему использованию объектов. Жизненный цикл объектов в ViewData, ViewBag, & Жизненный цикл Представления короче, чем на сессии. Данные, определенные в формирователях, будут потеряны после ответа запроса (если попытка получить доступ после ответа запроса, Вы получите исключения). Таким образом, формирователи подходят для передающих данных между Представлением & Контроллер, в то время как последний для того, чтобы хранить временные данные. Временные данные должны сохранить на сессии так, чтобы мог много раз получаться доступ.

0
ответ дан 24 November 2019 в 08:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: