Проблема с выпадающим в Razor - PullRequest
0 голосов
/ 14 апреля 2011

У меня есть 2 таблицы в дБ: MixedType (идентификатор и имя) и блок (идентификатор, имя, idMixedType).

Я хочу сделать строго типизированное представление для блока (Создать представление).

Контроллер следующий:

    public ActionResult Create()
    {
        return View();
    } 

Block () - это частичный класс (я использую Entity Framework + POCO).

У меня нет проблем с текстовыми полями, все отлично работает:

    <div class="editor-label">
        @Html.LabelFor(model => model.name)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.name)
        @Html.ValidationMessageFor(model => model.name)
    </div>

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

Я попытался сделать это следующим образом (согласно этому ответу Создать выпадающий список для MVC3, используя Entity Framework (модель .edmx) & Razor Views && Вставить запись базы данных в несколько таблиц ):

    <div class="editor-label">
        @Html.LabelFor(model => model.idMixedType)
    </div>
    <div class="editor-field">
        @Html.DropDownListFor(model => model.idMixedType, new SelectList(Model.MixedType, "id", "name"))
        @Html.ValidationMessageFor(model => model.idMixedType)
    </div>

Но у меня ошибка

The best overloaded method match for 'System.Web.Mvc.SelectList.SelectList(System.Collections.IEnumerable, string, string)' has some invalid arguments

Что не так?

1 Ответ

1 голос
/ 02 мая 2011

Вы передаете Model.MixedType конструктору SelectList. Предположительно Model.MixedType не является IEnumerable.

Возможно ли, что это должна быть строчная буква "m" (model.MixedType)?

Если нет, вам нужно просмотреть статическое свойство MixedType и убедиться, что это коллекция, реализующая IEnumerable (и что перечисляемые объекты имеют свойства "id" и "name", но я предполагаю, что это случай).

...