我正在从我的 Controller 中的 SQL 数据库表中选择以下数据
var fixtures = from f in _context.Fixtures
where f.MatchDate.Year == year &&
(gender.Contains( f.Gender )) &&
(type.Contains( f.MatchType )) &&
(team.Contains( f.TeamName ))
orderby f.TeamName, f.MatchDate
select f;
return View( "DisplayLeagues", fixtures.ToList() );
并调用 DisplayLeagues
View 来显示它。从 orderby
可以看出,它包含多个团队。我想在网页上为每个团队显示一个单独的表格。我的页面声明包含
Inherits="System.Web.Mvc.ViewPage<IEnumerable<RLSBCWebSite.Domain.Entities.Fixture>>"
作为模型的声明。为了显示表格的各个行,我有
<% foreach (var item in Model.AsEnumerable()) { %>
但是如何在整个 table 周围添加一个基于团队名称的循环控件?代码好像不行
<% foreach (var team in Model.TeamName ....
最佳答案
类似于:
group g by f.TeamName into tmp
select new {TeamName = f.Key, Fixtures = tmp.ToList() }
这将为每个团队提供一组,即
foreach(var grp in query) {
Console.WriteLine(grp.TeamName);
foreach(var fixture in grp.Fixtures) {
// write fixture details
}
}
请注意,这会将每个项目更改为 IGrouping<string, List<Fixture>>
,并注意 ToLookup
如果更容易的话,会做一些非常相似的事情。
关于c# - 网页上的嵌套 foreach 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5367901/