Как получить итерацию бритвенного элемента, содержащего список коллекции? - PullRequest
0 голосов
/ 14 октября 2019

Как перебрать этот элемент списка результатов в бритве?

Мой контроллер:

ViewBag.DataGrid = lst. GroupBy(x=> new { x.PosisiJabatanId, x.AplikasiId}, (key, group) => new 
                                         {
                                             Key1 = key.PosisiJabatanId,
                                             Key2 = key.AplikasiId,
                                             Result = group.ToList() 
                                         });

Мой взгляд бритвы:

@foreach (var item in @ViewBag.DataGrid)
            {
                @:<tr>
                    <td>@i</td>
                    <td>@item.Result.Organisasi</td>
                    <td>@item.Result.NamaAplikasi</td>
                    <td>@item.Result.Unit</td>
                    <td>@item.Result.PosisiJabatanId</td>

                i = i + 1;
                @:</tr>
            }

Но 'объект«не содержит определения« Результат »

1 Ответ

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

вы столкнулись с этой проблемой, потому что вы пытаетесь использовать для каждого цикла на анонимном объекте. поэтому сначала вам нужно получить значение из этого, как показано ниже. а затем вам нужно eterat для каждого цикла на нем.

 @foreach (var item in @ViewBag.DataGrid)
    {
        <tr>
            @{
                var val = item.GetType()
                .GetProperty("Result")
                .GetValue(item);

                foreach (var result in val)
                {
                    <td>@result.Organisasi</td>
                    <td>@result.NamaAplikasi</td>
                    <td>@result.Unit</td>
                    <td>@result.PosisiJabatanId</td>
                }
            }
        </tr>
    }

...