使用View Model(vb)显示ASP.Net MVC表中每个用户的计数或总计

时间:2015-01-07 22:07:49

标签: asp.net vb.net model

我从SQL Server DataTable中提取所有用户并在表格中显示该列表(参见代码)

控制器代码:

Function Display Users() As ActionResult

Using db as new xDataContext

Dim model As New dataViewModel With { _
                                      .AllUsers = db.GetAllUsers() _
                                      }

            Return View(model)

        End Using

型号代码:

Public Function GetAllUsers() As List(Of User)
    Dim allusers = From user In Me.Users Select user Order By user.LastActivityDate Descending
    Return allusers.ToList()
End Function

HTML代码:

<table>
    <thead>
        <tr>
            <th>User/<>
            <th>Total Points</th>
        </tr>
    </thead>

    <tbody>

        <% For Each item in Model.AllUsers%>

            <tr>
                <td><%: item.UserId%></td>
                <td>NEED HELP HERE I want to show points from a separate table summed life to date </td>
            </tr>
        <% Next%>
    </tbody>
</table>

UserId存储在用户数据表中,我可以轻松获取这些记录。点按日期存储在单独的表中。我想要得到的是通过将每个用户的所有积分相加并在表格中显示它来得到总点数。这可能很容易解决,我只是在密集......

我已经找到了实现这一目标的方法无济于事。感谢您提供帮助。

感谢您的快速回复。对不起,我没有提供足够的信息。我有两个表:用户和活动 - 活动包含每个活动的点数,我希望用户在表格中总结生命。它们是分开的,我想将它们组合在视图表中 例: 用户点数 特德127 Sam 211

谢谢!

2 个答案:

答案 0 :(得分:0)

我不是vb.net的人,但您应该从以下查询中了解如何执行此操作:

var allUsers = from T1 in context.Users
        join T2 in context.Points on T1.ID equals T2.ID
        group T3 by new { T1.ID} into g
        select new { 
            Column1 = T1.Column1, 
            Column2 = T2.Column2, 
            Amount = g.Sum(t3 => t3.Column1) 
        };

答案 1 :(得分:0)

对于模型。 创建一个包装类,它能够从UserWrapper这两个表中保存数据,你可以在其中放置userdata和其他表数据。如果你不想创建另一个包装类,你还可以在当前类中添加一个成员变量。

用于控制器火连接查询以从两个表中选择

SELECT *
FROM user INNER JOIN othertable
ON user.userId= othertable.userId;

你的两个表必须有一些comman的东西,你可以在这里触发userId的查询。

然后你就可以看到你正在做的事情......