2010-10-08 3 views
0

У меня есть эта строка кода на мой взгляд, но она не работает. Он продолжает бросать эту ошибку:ASP.NET HTML.DropDownListFor

The ViewData item that has the key 'Material.Modelo.Categoria.Familia_Id' is of type 'System.Int32' but must be of type 'IEnumerable'

<%= Html.DropDownListFor(model => model.Material.Modelo.Categoria.Familia_Id, 
            Model.Familias, 
            " -- Seleccione -- ")%> 

Model.Familias фактически SelectList и model.Material.Modelo.Categoria.Familia_Id целое.

Любые идеи?

Thnx

ответ

0

Html.DropDownListFor ожидает передачи коллекции (что-то, что imlements IEnumberable), так что он может построить выпадающий из этих пунктов.

Вы передаете ему одно целое число.

Предполагая, что у вас есть выпадающий список с одним элементом, добавьте это целое в какую-то коллекцию и передайте ее. Список или любая другая коллекция, реализующая IEnumerable, будет работать нормально.

Заканчивать этот пост ...

Populating ASP.NET MVC DropDownList

... Подробнее о том, как заполнить один из них.

+0

Первый параметр в DropDownListFor является свойством в модели, которую вы хотите отправить обратно выбранному контроллеру, а ВТОРОЕ - коллекция IEnumerable. Мне кажется, что она делает это правильно. –

+0

Точно ... и на самом деле у меня есть это: <% = Html.DropDownListFor (model => model.Material.Modelo_Id, Model.Modelos, "- Seleccione -")%> и это отлично работает. Итак, что может случиться? – tina

+0

Обратите внимание на использование SelectList в ответе, на который я ссылаюсь. Я думаю, что это разница. –

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