Получить значение в View из ICollection для передачи параметра ActionLink - PullRequest
0 голосов
/ 06 сентября 2018

Hellow !, мне нужно иметь возможность получить Id из Compromisos в представлении Gestion. Мне нужно, чтобы Id перешел на ActionLink и перешел в View Details of Compromisos

public class Gestion
{
    //abbreviated to not make the long post 

    public Personales Personales { get; set; }

    public ICollection<Compromisos> Compromisos { get; set; }
}

и

public class Compromisos
{
    //abbreviated to not make the long post 

    public Personales Personales { get; set; }
    public Gestion Gestion { get; set; }
}

На самом деле я получаю Id, используя это

@foreach (var item in Model.Gestion)
                {
                    <tr>                            
                        <td>
                            @Html.DisplayFor(modelItem => item.Compromisos)
                        </td>

                    </tr>

                }

но я хочу быть в состоянии сделать это: @Html.ActionLink("Detalle", "Details", "Compromisos", new { id = item.Compromisos}), но не работает.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 06 сентября 2018

@ Вараги, я наконец сделал это.

@foreach (var Item in Model.Compromisos)
                            {
                                @if (item.Id == Item.GestionId)
                                {

                                    <a asp-action="Details" asp-controller="Compromisos" target="_blank" asp-route-id="@Item.Id">Detalle</a>
                                }

                            }

В контроллере я добавил .Include(c => c.Compromisos)

public async Task<IActionResult> Details(int? id)
    {
        if (id == null)
        {
            return NotFound();
        }

        var gestion = await _context.Gestion
            .Include(c => c.Compromisos) //before I had included .ThenInclude(c => c.Compromisos)
            .SingleOrDefaultAsync(m => m.Id == id);
        if (gestion == null)
        {
            return NotFound();
        }

        return View(gestion);
    }
0 голосов
/ 06 сентября 2018

Стоит ли перебирать модель Model.Compromisos вместо Model.Gestion? Возможно выложите всю свою модель.

@foreach (var item in Model.Compromisos)
                {
                    <tr>                            
                        <td>
                            @Html.DisplayFor(modelItem => item.Gestion.[Property])
                        </td>
                        <td>
                            @Html.ActionLink("Detalle", "Details", "Compromisos", new { id = item.Compromisos.Id})
                        </td>
                    </tr>

                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...