在进行以下查询后,尝试打印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&#39; group by clause&#39;)。
问候
答案 0 :(得分:0)
您需要创建一个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();
然后在View的顶部,您需要放置一个@model或inherits声明来将模型定义为强类型,设置为IEnumberable<ViewModel>
- 或者您称之为类的任何内容。
然后您可以使用以下方式在循环中显示两个属性:
<%foreach (var item in Model)
{ %>
<tr><td><%=item.Semana%></td>
<td><%=item.TotalDeuda%></td></tr>
<%} %>
如果您能够查看此内容,使用Razor语法也会更容易。有关详细信息,请参阅文章here。