Как зациклить несколько групп по списку в бритве? «System.ValueType» не содержит определения «Key» - PullRequest
1 голос
/ 10 октября 2019

Если только одна группа по лямбда-выражению в контроллере:

ViewBag.DataGrid = lst.GroupBy(x => x.PosisiJabatanId).ToDictionary(x => x.FirstOrDefault()).ToList();

бритва работает нормально

@foreach (var item in @ViewBag.DataGrid)
            {
                @:<tr>
                    <td>@i</td>
                    <td>@item.Key.Organisasi</td>
                    <td>@item.Key.NamaAplikasi</td>
                    <td>@item.Key.Unit</td>
                    <td>@item.Key.PosisiJabatan</td>
                    foreach (GridReportViewModel item2 in @item.Value)
                    {
                        <td>@item2.NilaiKolom</td>
                    }
                    i = i + 1;

                @:</tr>
            }

, но если группировка по лямбда-выражению в контроллере более одного

ViewBag.DataGrid = lst.GroupBy(x => new { x.PosisiJabatanId, x.AplikasiId }).ToDictionary(x => x.FirstOrDefault()).ToList();

Razor не работает нормально Ошибка: 'System.ValueType' не содержит определения для 'Key'

1 Ответ

0 голосов
/ 10 октября 2019

хорошо, ToList() возвращает List, а не Dictionary, просто удалите ToList() (ToDictionary() перечислит коллекцию также)

ViewBag.DataGrid = lst.GroupBy(x => x.PosisiJabatanId).ToDictionary(x => x.FirstOrDefault());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...