0

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

目前我有:

阿曼达 ·
金琳达 ·玛丽·迈克

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

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)

所以我的结果是:


阿曼达 _

K

L
琳达

M
玛丽
·迈克

4

1 回答 1

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 可能需要一个@:前言

于 2013-09-18T20:41:30.240 回答