显示按MVC视图上的标题分组和分隔的数据表

时间:2010-06-03 23:03:00

标签: c# linq asp.net-mvc-2

我是一个完整的C#和MVC菜鸟,所以这对我来说是一场苦战。

我做了一个可怕但最终成功的工作,建立一个工作网站,以显示即将举行的小学/地方选举的结果。

在我的网站的最终视图中我需要的是显示同一类别中的所有种族结果。例如,有三个城市委员会职位空缺,我需要在一个页面上进行所有三场比赛的结果。我可以显示我想要的所有结果,按类别过滤,在漂亮的css表中,我似乎无法弄清楚的是我如何将每个比赛的子标题拆分为该表。

数据是直接Linq到SQL,并且来自服务器上的单个视图(存储库是必须在我的下一个项目中发生的事情,除非它们对于此功能是必不可少的。)

2 个答案:

答案 0 :(得分:4)

我不太确定这是不是你想要的,请告诉我,我会尽力帮助。

这不会直接对你有用,但希望可能以正确的方式指出你。我目前正在使用自定义视图模型来保存这些数据,我实际上正在考虑从我的系统变得非常复杂,但它可能会帮助你。

如果你需要我,我可以解释一下这意味着什么,(一年前我还是一个菜鸟!)

我假设你想要按类别分组的比赛。

 <% foreach (var group in Model.GroupBy(item => item.categoryId)) Gives you the inital sort
 { %>
<% foreach (var item in group.Take(1))
{ //Category %>
<%=Html.Encode(item.CategoryName) %>
<% } %>

<% foreach (var item in group)
{ //Indervidual races%>

<%=Html.Encode(item.raceResult) %>
<% } %>


<% foreach (var item in group.Take(1))
{ %>
<!-- Area which happens after each category grouping -->
<% } %>
<% } %>

答案 1 :(得分:2)

谢谢!这正是我所寻找的信息。 Model.groupby是我的突破。

以下是我在最终FWIW中使用的代码:

<% 
foreach (var group in Model.GroupBy(item => item.contestNumber)) 
{
    foreach (var item in group.Take(1)) 
    {
%>
        <table width="600">
            <tr>
                <th>
                    <%: item.txtContest %>
                </th>
                <th width="40"></th>
            </tr>
<% 
        foreach (var result in group) 
        { 
%>
            <tr>
                <td>
                    <%: result.Candidate %>
                </td>
                <td>
                    <%: result.voteTotal %>
                </td>
            </tr>

<% 
        } 
%>

        </table>
        <br />
        <br />
        <br />
<% 
    }
} 
%>