Доступ к данным из раскрывающегося списка - PullRequest
0 голосов
/ 19 декабря 2018

Я получаю значение из раскрывающегося списка на контроллере, но когда он возвращается к просмотру, он возвращает пустое окно просмотра: - введите описание изображения здесь

Изображение экрана контроллера: -

public ActionResult Index(int departmentID)
{
     ViewBag.dropdowndetail = null;

    var strDDLValue = departmentID;
    if (strDDLValue == null)
    {
        return HttpNotFound();
    }
    else
    {
        var emp = db.employees.ToList().FirstOrDefault(x=>x.depId==departmentID);
        return View(emp);
    }
}

ОШИБКА: введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 23 января 2019

Вы можете использовать подход ключевого значения в контроллере

ViewBag.dropdowndetail = db.departments.Distinct().Select(x => new KeyValuePair<int, string>(x.depid, x.DepartmentName));

, а в представлении использовать ViewBag, как это

 @Html.DropDownListFor(model => model.depid, new SelectList((IEnumerable<KeyValuePair<int, string>>)ViewBag.dropdowndetail , "key", "value"), "--Select Departments--")
0 голосов
/ 19 декабря 2018

Я понял правильно. Моя viewbag не получала никакого значения в методе Post, поэтому, почему в View он получал нулевое исключение, я вызываю свою viewbag в методе Post и присваиваю ему значение.измените следующий код с этим.

 public ActionResult Index(int departmentID)
    {         
        var strDDLValue = departmentID;
        if (strDDLValue == null)
        {
            return HttpNotFound();
        }
        else
        {
            var emp = db.employees.Where(x=>x.depId==departmentID).ToList();
            ViewBag.dropdowndetail = db.departments.Distinct().ToList();
            return View(emp);
        }

    }
...