使用视图模型 (vb) 在 ASP.Net MVC table 中显示每个用户的计数或总数

Display Count or Total for each user in ASP.Net MVC table using View Model (vb)

我正在从 SQL 服务器数据 Table 中提取所有用户并在 table 中显示该列表(参见代码)

控制器代码:

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 存储在用户数据中table,我可以轻松获取这些记录。点按日期存储在单独的 table 中。我想要获得的是通过将每个用户的所有点数相加并将其显示在 table 中的总点数。这可能很容易解决,我只是很密集...

我已经搜索过实现此目的的方法,但无济于事。在此方面的任何帮助都将不胜感激。

感谢您的快速回复。对不起,我没有提供足够的信息。我有两个 tables:用户和活动 - 活动包含每个 activity 的点数,我想根据 table 中的用户总结迄今为止的生活。它们是分开的,我想在视图 Table.
中组合它们 例子: 用户积分 泰德 127 山姆 211

谢谢!

我不是 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) 
        };

对于模型。 创建一个包装器 class,它能够保存来自两个 table 的数据,例如 UserWrapper,您可以在其中放置用户数据,而其他 table data.you 也可以在您当前的 class 如果你不想创建另一个包装器 class.

对于从两个 table

到 select 的控制器火连接查询
SELECT *
FROM user INNER JOIN othertable
ON user.userId= othertable.userId;

你的两个 table 必须有一些常见的东西,你可以在此处触发查询,即 userId。

那你就可以边看边做...