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 に答える