В настоящее время я фильтрую страницу с курсами и проектами, связанными с этими курсами. Я хочу заказать те проекты, по которым один получил наибольшее количество голосов - атрибут vote_amount. У меня возникли проблемы с выяснением, как справиться с этим через контроллер, и я могу легко сделать это в представлении, однако, я получаю сообщение об ошибке.
У меня есть цикл внутри цикла, и он работает достаточно хорошо, но мне нужно заказать.
foreach (var item in ViewBag.Courses)
{
<h2> item.CourseName <h2>
foreach (var project in item.Projects.OrderBy(project => project.vote_amount)
{
<h2> project.Name <h2>
}
}
Кажется легким, тогда я получаю следующую ошибку. Невозможно использовать лямбда-выражение в качестве аргумента для динамически отправленной операции, не отбрасывая ее сначала до типа делегата или дерева выражений
Я знаю, что должен хранить этот материал в контроллере при использовании выражений linq, но у меня возникают проблемы с получением желаемого порядка по массиву проектов, которые я хочу в другом цикле. Любой совет будет принят во внимание.
вы пытались заказать его перед циклом foreach?
foreach (var item in ViewBag.Courses)
{
<h2> item.CourseName <h2>
item.Projects = item.Projects.OrderBy(project => project.vote_amount).toList();
foreach (var project in item.Projects)
{
<h2> project.Name <h2>
}
}
var item
попробуйте присвоить элементу значение класса из списка Courses, например:foreach (CoursesModel item in ViewBag.Courses)