Показать страницу просмотра с результатами группы из контроллера

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)

поэтому мои результаты будут следующими:


Аманда

К
Ким

L
Линда

M
мергелистый
Майк

Теги:
asp.net-mvc

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 может потребоваться префикс @:

  • 0
    Я пробовал это, но я получил ошибку: Object reference not set to an instance of an object для @foreach( NameUser user in Model ) я удалить что-нибудь из моего контроллера?
  • 0
    @Masriyah - Какое определение модели для вашей страницы?
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню