Asp.net mvc 从控制器中创建的列表将ViewBag/Razor值注入页面
我想知道是否可以将ViewBag/Razor值从控制器中创建的列表(而不是表结构)注入页面 我正在建立一个有16支队伍的锦标赛框架,每支队伍中有8支在中间相遇。我想做的是将团队名称和团队点数都注入到括号的特定区域中 我的控制器操作使用此LINQ查询生成我需要在视图中显示的所有数据: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
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%确定如何在需要它们的视图中显示它们。