Нет элемента ViewData с ключом 'Blah' типа 'IEnumerable <SelectListItem>' - PullRequest
4 голосов
/ 17 мая 2009

Это сообщение об ошибке сводит меня с ума.

Я получаю его при использовании Html.ListBox и Html.DropDownList HtmlHelpers с ASP.NET MVC v1.0. Заполнение списков работает нормально - я могу их просматривать и т. Д. - но когда я иду, чтобы создать новую запись в модели, используя FormCollection, переданную в контроллер для получения выбранного значения, возникает эта ошибка. Я пробовал несколько разных конфигураций и компоновок кода по нескольким другим постам по этому вопросу - не радость.

Надеюсь, кто-нибудь скажет мне, является ли это известной проблемой или нет, так как я могу продолжать жить! Предпочитает не публиковать код в случае необходимости, но может сделать, если требуется.

О, и предложенный обходной путь / решение было бы тоже неплохо; -)

ТИА!

Bernard.


Хорошо, быстрое обновление, я разместил три комментария к ответам ниже, чтобы прояснить детали того, что я собираюсь сделать здесь.

Теперь у меня есть еще одна проблема - я попробовал альтернативный рекомендуемый подход ScottGu - реализацию ModelView. Таким образом, когда я делаю это, это в основном тот же сценарий, но я получаю «Ссылка на объект не установлена ​​на экземпляр объекта». ошибка в том же месте, где я получал сообщение «Нет элемента ViewData с ключом« Blah »типа« IEnumerable ».».

Я начинаю понимать, что, возможно, это как-то связано с тем, как работает EF ...

Ответы [ 3 ]

2 голосов
/ 17 мая 2009

Хорошо, оооочень ясно, я нуб EF / MVC ...

Хотя проблема была решена моей реальной реализацией правильного управления исключениями ... сообщение об исключении (когда я фактически начал его перехватывать) было «Отношения между двумя объектами не могут быть определены, потому что они присоединены к разным объектам ObjectContext». , Поэтому сейчас я использую один и тот же ObjectContext для доступа ко всем данным, и все возвращается на круги своя.

Спасибо за заботу, в следующий раз у меня умный вопрос - обещай!

Бернард.

0 голосов
/ 09 октября 2009

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

0 голосов
/ 17 мая 2009

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

http://forums.asp.net/p/1320426/2623986.aspx

...