Выпадающий список заполнен из хранилища - PullRequest
1 голос
/ 24 сентября 2011

У меня есть выпадающий список MVC3, полученный из этого кода на контроллере.

private SelectList progCodesList = new SelectList(new[] { "Description", "Requirements", "Development", "Testing", "Documentation" });

Как я могу заполнить поля из репозитория, чтобы динамически создать выпадающий список? Благодарю.

Ответы [ 2 ]

1 голос
/ 24 сентября 2011

Если у вас есть progCodes в таблице базы данных с progCode, имеющим текст, и progCodeId с уникальным идентификатором, то вы можете прочитать таблицу в список SelectListItem следующим образом:

private DbContext _db = new DbContext();

var progCodesList = _db.progCodes.Select(x => new SelectListIem()
    {
        Text = x.progCode,
        value = x.progCodeId
    }).ToList();

Затем вы можете передать это List<SelectListItem> вашему представлению либо в строго типизированной модели, либо с помощью ViewBag.

0 голосов
/ 24 сентября 2011

Вам нужно передать progCodesList в ViewBag в вашем методе контроллера, используя что-то вроде:

ViewBag.ProgCodeId = progCodesList;

Затем, по вашему мнению, вам нужно заполнить раскрывающийся список так:

    <div class="editor-label">
        @Html.LabelFor(model => model.ProgCodeId, "ProgCode")
    </div>
    <div class="editor-field">
        @Html.DropDownList("ProgCodeId", String.Empty)
        @Html.ValidationMessageFor(model => model.ProgCodeId)
    </div>
...