Ошибка отображения параметров .ToSelectList в выпадающем списке

#asp.net-mvc

#asp.net-mvc

Вопрос:

У меня возникли некоторые проблемы с определением, какие параметры передать в моем .ToSelectList() , чтобы я мог отобразить свои результаты в выпадающем списке. У меня есть два IQueryable элемента, и я хочу отобразить результаты вместе в одном выпадающем списке. Мне не нужно сравнивать и сопоставлять, это просто grap и display. Пример того, как выглядят результаты, выглядит следующим образом:

 Teacher
Doctor
Nurse
Engineer
Jack Smith
Tim Jones
Jill Jack
  

Вот как пока выглядит мой код:

 IQueryable<Report_JobResults> jobs=
            _jobsReportRepository.summaryGetJob().OrderBy(o=>o.JobName);

IQueryable<Report_nameResult> users =
           _nameReportRepository.summaryGetName().OrderBy(n => n.FirstName).ThenBy(
               n => n.LastName);

//Here is where i display results into a dropdown box.

view.Results=jobs.Select(o => o.jobId).ToList().Union(users.Select(u =>     u.userId).ToList()).ToSelectList();
  

Я не уверен, какие параметры будут в .ToSelectList()

Мы будем очень признательны за помощь. 🙂

Спасибо

Ответ №1:

Вы можете попробовать

 var results = jobs.Select(o => o.jobId).Union(users.Select(u => u.userId))
    .Select( i => new SelectListItem
    {
        Text = i,
        Value = i
    };
  

и используйте results для в Html.DropDownListFor() .

Комментарии:

1. Спасибо, я продолжу и попробую это, но просто интересно, что такое «i» и что он делает?

2. i представляет каждый элемент в IQueryable или IEnumerable

3. Я пробовал это, но я просто получаю номера элементов в выпадающем списке, а не фактическое значение.

4. Затем при выборе попробуйте использовать атрибут name вместо jobid и userid.

5. Также еще один вопрос — если бы я хотел проверить, что выбрал пользователь, было ли это jobName или UserName, что я мог бы использовать, чтобы указать, какой тип был выбран, чтобы возвращать разные данные в соответствии с выбором.