OrderBy Linq表达式在MVC5 asp.net中查看建议

时间:2015-04-04 00:32:48

标签: c# linq razor view asp.net-mvc-5

我目前正在过滤包含与这些课程相关的课程和项目的页面。我想订购那些获得最多投票资金的项目 - 属性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>
           }


     }

似乎很容易然后我收到以下错误。 在没有先将其转换为委托或表达式树类型的情况下,不能将lambda表达式用作动态调度操作的参数

我知道在使用linq表达式时我应该将这些内容保留在控制器中但是,我无法通过我希望在另一个循环中的项目数组获得所需的顺序。 任何建议将不胜感激。

1 个答案:

答案 0 :(得分:1)

你试过在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>
    }
}