2013-09-18 5 views
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)

так что мои результаты будут:

A
Аманда

K
Ким

L
Linda

M
Марли
Майк

ответ

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

+0

Я пробовал это, но я получил ошибку: «Ссылка на объект не установлена ​​в экземпляр объекта» для '@foreach (пользователь NameUser в модели)' Am Я должен удалить что-нибудь из своего контроллера? – Masriyah

+0

@Masriyah - Какое определение модели для вас? –

+0

Я добавил '@model IEnumerable ' в начало страницы моего просмотра под моими операциями использования – Masriyah

Смежные вопросы