在asp.net mvc4中通过查询打印linq组

本文关键字:查询 打印 linq asp net mvc4 | 更新日期: 2023-09-27 18:12:46

在执行以下查询

后,我在尝试打印linq查询时遇到问题
var cargaDatos = (from rs in DB.C_gestcobcanalvendsem
                            group rs by new { rs.semana } into s
                            orderby s.Key
                            select new 
                            {
                              Semana = s.Key,
                              TotalDeuda = s.Sum(x => x.Credito)
                             }
                           ).ToList();
      return View(cargaDatos);

我尝试用推荐的方式打印

<% foreach (var item in Model) { %>
    <tr>
        <td>
            <%: Html.DisplayFor(modelItem => item.Semana) %>
        </td>
<% } %>

或类似的表格,但我找不到打印它的表格。(可能我做错了什么,但找不到正确的方法来操纵linq查询whit 'group by clause')。

在asp.net mvc4中通过查询打印linq组

您需要创建一个ViewModel,如:

//Call it whatever you want
public class ViewModel 
{
    // use whatever types Key and TotalDeuda are
    public int Semana { get; set; }
    public double TotalDeuda { get; set; }
}

然后你可以在你的linq查询中使用它来创建一个强类型列表:

   // Rest of linq as in your question
   select new ViewModel {
                           Semana = s.Key,
                           TotalDeuda = s.Sum(x => x.Credito)
                        }).ToList();

然后在你的视图的顶部,你需要放一个@model或inherits声明来定义模型为强类型,设置为IEnumberable<ViewModel> -或任何你称之为类。

然后你可以在你的循环中显示两个属性:

<%foreach (var item in Model)
    {  %>
<tr><td><%=item.Semana%></td>
<td><%=item.TotalDeuda%></td></tr>
<%} %>

如果你能了解到这一点,使用Razor语法也会更容易。