Asp.net mvc 从控制器中创建的列表将ViewBag/Razor值注入页面

Asp.net mvc 从控制器中创建的列表将ViewBag/Razor值注入页面,asp.net-mvc,linq,razor,Asp.net Mvc,Linq,Razor,我想知道是否可以将ViewBag/Razor值从控制器中创建的列表(而不是表结构)注入页面 我正在建立一个有16支队伍的锦标赛框架,每支队伍中有8支在中间相遇。我想做的是将团队名称和团队点数都注入到括号的特定区域中 我的控制器操作使用此LINQ查询生成我需要在视图中显示的所有数据: var result = (from a in activities join t in teams on a.TeamId equals t.Id group

我想知道是否可以将ViewBag/Razor值从控制器中创建的列表(而不是表结构)注入页面

我正在建立一个有16支队伍的锦标赛框架,每支队伍中有8支在中间相遇。我想做的是将团队名称和团队点数都注入到括号的特定区域中

我的控制器操作使用此LINQ查询生成我需要在视图中显示的所有数据:

var result = (from a in activities
              join t in teams on a.TeamId equals t.Id
              group a by new { a.TeamId, t.TeamName } into g
              orderby g.Sum(p => p.Points) descending
              select new
              {
                  TeamId = g.Key.TeamId,
                  TeamName = g.Key.TeamName,
                  Points = g.Sum(p => p.Points)
              });
结果数据如下所示:

TeamId | TeamName | Point

  2    | Team One | 17

  1    | Team Two | 11
因此,现在我想看看是否可以指定在视图中的何处注入“teamone”和“teamtwo”,以及它们的相关点值


有什么方法可以做到这一点吗?

我非常怀疑这是最好的方法,但这就是我最终获得需要在视图上显示的数据的原因

我将LINQ查询更新为此,并将结果发送到视图:

var results = (from a in activities
                       join t in teams on a.TeamId equals t.Id
                       where a.TeamId.Equals(t.Id)
                       group a by new { t.TeamName, t.Id } into g
                       select new TeamPointViewModel
                       {
                           TeamId = g.Key.Id,
                           TeamName = g.Key.TeamName,
                           TeamPoints = g.Sum(p => p.Points)
                       });
然后在视图中,我可以将其放置在需要显示数据的位置,例如,ID为1的Team One:

<span class="span">@Model.First(e => e.TeamId == 1).TeamName - @Model.First(e => e.TeamId == 1).TeamPoints</span>
我不一定喜欢在视图中硬编码团队ID,但是这是一种实现我目前需要做的事情的方法


感谢您的帮助。

使用viewmodel,您是否能够偶然提供一个示例?参考这些链接,您将了解有关视图模型的信息,并感谢您的回复-我有工作视图模型,但没有多个团队/点值。我是否会创建一个视图模型,其属性包括TeamOneName、TeamOnePoints、TeamTwoName、TeamTwoPoints等。。。在我的帖子中,我可以通过查询将数据放到视图中,但我不能100%确定如何在需要它们的视图中显示它们。