我从控制器中的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
视图以显示它。从orderby
可以看出,它包含多个团队。我想在每个团队的网页上显示一个单独的表格。我的页面声明包含
Inherits="System.Web.Mvc.ViewPage<IEnumerable<RLSBCWebSite.Domain.Entities.Fixture>>"
作为模型的声明。要显示表格的各行,我有
<% foreach (var item in Model.AsEnumerable()) { %>
但是如何根据整个表格周围团队的名称添加循环控件?似乎无法编码
<% foreach (var team in Model.TeamName ....
答案 0 :(得分:0)
类似的东西:
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
如果更容易,则会执行非常相似的操作。
答案 1 :(得分:0)
对于外部循环,它为每个团队生成一个单独的表,我使用了以下
<% foreach (var teamName in Model.AsEnumerable().GroupBy( r => r.TeamName )) {
对于为每个团队生成单独匹配的内部循环,我使用了
<% foreach (var item in Model.AsEnumerable().Where(item => item.TeamName == teamName.Key.ToString())) {
这非常有效。