Будет проще, если вы создадите модель, отражающую данные, которые вы хотите отобразить. Таким образом, манипулирование происходит в коде, и представление просто следует тому, что в модели.
Это не самый элегантный пример. Считай это иллюстрацией.
У вас есть это:
public class TheModelYouHave
{
public string Servico { get; set; }
public string DescTipo { get; set; }
public string StatusReserva { get; set; }
public string IdentReserva { get; set; }
public string PaxsReserva { get; set; }
}
То, что вы хотите, это:
public class TheModelYouWant
{
public Dictionary<string, IEnumerable<TheModelYouHave>> ModelsGroupedByPaxsReserva { get; }
= new Dictionary<string, IEnumerable<TheModelYouHave>>();
}
Это словарь. Ключом является каждое отдельное значение PaxsReserva
, а значением является набор всех элементов, имеющих одинаковое значение для PaxsReserva
.
Чтобы отобразить модель, которая вам нужна,
public static TheModelYouWant ToTheModelYouWant(IEnumerable<TheModelYouHave> source)
{
var grouped = source.GroupBy(src => src.PaxsReserva, src => src);
var result = new TheModelYouWant();
foreach(var group in grouped)
result.ModelsGroupedByPaxsReserva.Add(group.Key, group);
return result;
}
Теперь по вашему мнению:
@foreach(var paxs in Model.ModelsGroupedByPaxsReserva.Keys)
, а затем получить отдельные модели, принадлежащие этому ключу:
var items = Model.ModelsGroupedByPaxsReserva[paxs];
(я называю это items
, потому что я не знаю, что это за вещи.)