linq groupby在强类型MVC视图中

时间:2010-05-12 23:15:14

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

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

我有这个问题:

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

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

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

3 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分: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”是源列表中的分组属性。

答案 2 :(得分:0)

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

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