Utilizzare RenderAction (action, values)

RenderAction

Le RenderAction sono metodi speciali del controller che possono essere richiamati solo dalle views. Utili quando non si vuole lasciare della logica nella view.

E’ possibile definire una Render Action per restituire qualsiasi dato, ma è possibile utilizzarlo solo se restituisce un HTML markup. Inoltre è possibile associare alla Action l’attributo ChildActionOnly che ha l’effetto di nascondere il metodo ai chiamanti publici.

Aggiungere l’Action nel Cotroller:

[ChildActionOnly]
public PartialViewResult Events(int eventId)
{
    using (var db = new DbContext())
    {
        var events= db.Events.Where(x => x.Event.Id == eventtId);
        return PartialView("_BoxEvents", events);
    }
}

Invocare la RenderAction in _BoxEvents Partial View:

@{ Html.RenderAction("Events", new {eventId = Model.Id }); }