DropDownList Viewbag с данными из базы данных - PullRequest
0 голосов
/ 25 июня 2019

Я пытаюсь создать список с данными из базы данных. Я не получаю результатов. Ниже приведен код. Есть мысли?

Спасибо!

Контроллер:

DepartmentsConn dCon = new DepartmentsConn();
public ViewResult Employees(string Dept)
{
    ViewBag.Departments= new SelectList(dCon.Departments, "ID", "Dept");

    var employees = from m in db.Employees
                 where m.Dept == Dept ||Dept == null ||Dept == ""
                 select m;

     return View(employees.ToList());

}

Вид:

@Html.DropDownList("Departments", ViewBag.Departments as SelectList)

1 Ответ

0 голосов
/ 26 июня 2019

Это ответ на вторую часть о перенаправлении по клику ddl.

Сначала добавьте заполнитель в список выбора, чтобы пользователь мог сделать выбор:

@Html.DropDownList("Departments", ViewBag.Departments as SelectList, "Select a department...")

Затем добавьте jquery, который срабатывает при изменении, получает значение Id и отправляет его в контроллер:

    $(function () {

        $("#Departments").on("change", function () {
            var deptId = $(this).val();
            var routeVal = { Id: deptId };
            var url = '@Url.Action("Department", "Home")';

            $.ajax({
                url: url,
                type: 'POST',
                data: routeVal
            }).done(function (result) {
                window.location.href = result.newUrl;
            })
        })

    })

Это двойной прыжок, поэтому я уверен, что его можно улучшить. По сути, он получает значение Id, а затем отправляет его в действие контроллера под названием SetUrl, которое возвращает новый URL-адрес в функцию ajax, которая затем направляет пользователя на новый URL-адрес в функции .done (). В этом случае новый URL-адрес - Home / Department / 1, который возвращается к контроллеру для возврата нового представления:

    public ActionResult Department(int Id)
    {
        // Get the department data for this ID
        // Fill a model then return it
        return View(model);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...