Интересно, как реорганизовать такой код? Это метод в контроллере, и я передаю 2 списка выбора в Html через ViewBag.
public async Task<IActionResult> Index()
{
var teacherInfo = context.Teachers.OrderBy(x => x.Id);
IEnumerable<SelectListItem> selectList = from s in teacherInfo
select new SelectListItem
{
Value = s.Id.ToString(),
Text = s.FirstName + " " + s.LastName.ToString()
};
ViewBag.TeacherId = new SelectList(selectList, "Value", "Text");
var studentInfo = context.Students.OrderBy(x => x.Id);
IEnumerable<SelectListItem> selectListStudents = from s in studentInfo
select new SelectListItem
{
Value = s.Id.ToString(),
Text = s.FirstName + " " + s.LastName.ToString()
};
ViewBag.StudentId = new SelectList(selectListStudents, "Value", "Text");
return View();
}
Я пробовал это, но кажется, что я не могу использовать generi c, как это, потому что T не имеет определения для Id и других полей:
private async Task<IEnumerable<SelectListItem>> GetSelectListItem<T>(IOrderedQueryable<T> dbData)
{
IEnumerable<SelectListItem> selectList = from s in dbData
select new SelectListItem
{
Value = s.Id.ToString(),
Text = s.FirstName + " " + s.LastName.ToString()
};
return selectList;
}
Любая помощь будет оценена