В моем контроллере я возвращаю информацию, основанную на первой букве имени, и затем группирую все имена, начинающиеся с этой буквы. Все имена уже предварительно упорядочены по алфавиту - мне кажется, что я хочу отразить то, что хочу показать.
В настоящее время у меня есть:
Аманда
Ким
Линда
Марли Майк
Вот как я получаю имена:
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
мергелистый
Майк
По вашему мнению, если модель
@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 может потребоваться префикс @:
Object reference not set to an instance of an object
для@foreach( NameUser user in Model )
я удалить что-нибудь из моего контроллера?