显示包含控制器组结果的视图页面

时间:2013-09-18 20:34:24

标签: c# html asp.net-mvc

在我的控制器中,我将根据名称的第一个字母返回信息,然后将所有以该字母开头的名称分组。所有名称都已按字母顺序预先排序 - 我的观点反映了我想要展示的内容。

目前我有:

阿曼达

琳达
马尔利 麦克

这就是我得到名字的方式:

public IEnumerable<Names> GetNames(int? id, int? pageNumber)
    {
        int _pageNum = pageNumber.HasValue ? pageNumber.Value : 1;
        var userIndex = new NamesService().GetNames(id.Value, pageNumber: _pageNum).GroupBy(x => x.Name.Substring(0, 1));
        var users = new List<NameUser>();
        foreach (var group in userIndex)
        {
            string curLetter = group.Key;
            foreach (NameUser user in group)
            {
                users.Add(user);
            }
        }
        return users.AsEnumerable();
    }

我如何让我查看在属于该字母的名称组之前显示该字母 - 让curLetter打印然后users.Add(user)

所以我的结果将是:

一个
阿曼达

ķ


琳达

中号
马尔利
麦克

1 个答案:

答案 0 :(得分:0)

在您的视图中假设模型是

@model IEnumerable<NameUser>

然后您可以遍历该集合并检查第一个字母是否已更改

@{
 string s = "-1";
}
@foreach( NameUser user in Model )
{
 if( user.Name.Substring(0, 1) != s )
 {
  s = user.Name.Substring(0, 1);
  <div>@s</div> 
 }
 <div>@user.Name</div>
}

html可能需要@:前言