我如何在ASP.NET MVC视图组数据?(How do I group data in an AS

2019-06-17 12:02发布

在报告如Crystal Reports工具,有办法通过在数据中的特定列时采取非规范化的数据和IT组在指定的列中的每个独特的项目创建行标题。

如果我有这样的:

Category1    Data1
Category1    Data2
Category1    Data3
Category2    Data4
Category2    Data5
Category2    Data6

报告软件意志集团这样的:

Category1
      Data1
      Data2
      Date3
Category2
      Data4
      Data5
      Data6

有没有办法做到这在ASP.NET MVC视图,可能使用一个简单的LINQ短语或LINQ扩展方法在foreach或嵌套的foreach?

Answer 1:

如果您的看法是强类型,你可以使用嵌套的foreach的LINQ的GroupBy扩展方法:

<ul>
<% foreach (var group in Model.GroupBy(item => item.Category)) { %>

   <li><%= Html.Encode(group.Key) %>
     <ul>

     <% foreach (var item in group) { %>
       <li><%= Html.Encode(item.Data) %></li>  
     <% } %>

     </ul>
   </li>

<% } %>
</ul>

这将提供输出很像原来的问题你的格式列表。 它假定你的模型看起来是这样的:

public class ViewModel
{
    public string Category { get; set; }
    public string Data { get; set; }
}


文章来源: How do I group data in an ASP.NET MVC View?