Linq to sql MVC 2=计数和其他统计数据
我正在使用MVC2并显示一个网格。现在在这个网格的末尾,我想显示不同的统计数据,例如 网格中的行数 一个特定列为空的行数 一个特定列中的值之和 下面是我用来显示网格的代码部分Linq to sql MVC 2=计数和其他统计数据,linq-to-sql,asp.net-mvc-2,Linq To Sql,Asp.net Mvc 2,我正在使用MVC2并显示一个网格。现在在这个网格的末尾,我想显示不同的统计数据,例如 网格中的行数 一个特定列为空的行数 一个特定列中的值之和 下面是我用来显示网格的代码部分 <% foreach (var item in Model) {%> <tr> <td> <%: item.tblCourse.CourseName %></td> <
<% foreach (var item in Model)
{%>
<tr>
<td> <%: item.tblCourse.CourseName %></td>
<td> <%: item.NeededHoursPerWeek %> </td>
<td> <%:item.tblCourseWantedHours.Sum(x=>x.WantedHoursPerWeek)%> </td>
<td> <%: item.NeededHoursPerWeek - item.tblCourseWantedHours.Sum(x => x.WantedHoursPerWeek)%> </td>
<td>
<% foreach (var i in item.tblCourseWantedHours)
{ %>
<%: i.tblPerson.Surename %>
<% } %>
</td>
<td> <%: item.tblCourse.tblInstitute.InstituteName %> </td>
</tr>
<% } %>
以及存储库中的一个简单查询
公共IQueryable FindAllCoursedHoursInsester(字符串学期)
{
从_db.tblcourseNeedHours中的所有课程返回,按allCourses.tblCourse.CourseName排序,其中allCourses.Se学期==学期选择所有课程;
}
我已经显示了视图代码,请您指导我在哪个位置进行更改以获取这些统计信息。因为我是MVC2新手,所以我对结果感到困惑您可以对LINQ-使用各种聚合扩展方法。但我建议您在控制器中执行此操作,或者在业务逻辑层中执行更好的操作 可以为模型创建自定义类,并将聚合添加为属性。例如
public ActionResult SomeAction()
{
var courses = _repository.GetCourses();
var model = new YourModel(course){SomeAggregate = courses.Count(c => c.X == null)}
return View(model);
}
你可以用几种不同的方法来做。将您想要的元素添加到模型中,以便可以将它们绑定到计数并随视图返回它们,或者可以将一些计数器添加到foreach语句中,该语句跟踪您需要的项,然后将这些计数器值显示为结果。比如说
var countRows = 0;
<% foreach (var i in item.tblCourseWantedHours)
{ %>
<%: i.tblPerson.Surename %>
countRows++;
<% } %>
</td>
var countRows=0;
countRows++;
然后在新行中显示
<td>Number of records <%= countRows %>
记录数
或者随便你怎么称呼这个领域
您还可以在控制器中执行此操作,或者使用Linq执行一些聚合
<td>Number of records <%= countRows %>