【问题标题】:linq groupby in strongly typed MVC View强类型 MVC 视图中的 linq groupby
【发布时间】:2011-02-18 21:19:02
【问题描述】:

如何获得 IGrouping 结果以映射到视图?

我有这个问题:

var groupedManuals = manuals.GroupBy(c => c.Series);
return View(groupedManuals);

ViewPage 声明的正确映射是什么?

Inherits="System.Web.Mvc.ViewPage<IEnumerable<ProductManual>>"

【问题讨论】:

    标签: asp.net-mvc view strong-typing linq-group


    【解决方案1】:

    我仍处于学习 Linq 的早期阶段,所以我可能错了,但我认为 ViewPage 需要类似于

    Inherits="System.Web.Mvc.ViewPage<IEnumerable<IGrouping<Series, Manual>>>
    

    【讨论】:

    • 就是这样。不管出于什么原因,我就是想不通。
    【解决方案2】:

    视图必须与页面类型相同。您必须将输出转换为您的视图页面使用的相同类型。

    您还可以使用ViewData["Products"] 来设置您希望在您的 View aspx 页面上显示的集合信息。

    【讨论】:

      【解决方案3】:

      在帮助他人的情况下。这就是我想要实现的目标。

      动作代码

      var groupedManuals = manuals.GroupBy(c => c.Series);
      return View(groupedManuals);
      

      观点

      <%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<IEnumerable<IGrouping<string, ProductManualModel>>>" %>
       <% foreach (var item in Model)
                 { %>
              <div class="manual-category">
                  <h5>
                      <%= Html.Encode(item.Key) %> Series</h5>
                  <ul>
                      <% foreach (var m in item)
                         { %>
                      <li><a href="<%=Url.ManualLink(m.Id) %>" class="model-manuals">
                          <%= m.Id %></a> </li>
                      <% } %>
                  </ul>
          </div>
      

      IGrouping 可以说是一个列表列表。 “Key”是源列表中的分组属性。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-04-10
        • 2011-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多