web-dev-qa-db-fra.com

ne peut pas implicitement convertir le type void en object. .NET MVC PartialViewResult

J'ai l'action du contrôleur suivante:

[ChildActionOnly]
public virtual PartialViewResult ListActions(int id)
{
    var actions = meetingActionRepository.GetAllMeetingActions(id);

    return PartialView(actions);
}

Et le lien d'action suivant (en utilisant t4MVC et la syntaxe de rasoir)

<p>
   @Html.RenderAction(MVC.MeetingActions.ListActions(Model.MeetingId))
</p>

Cependant cela me donne l'erreur:

ne peut pas implicitement convertir le type void en object

Autant que je sache, l'action du contrôleur est ok, alors qu'est-ce qui pourrait me donner cette erreur?

80
MrBliz

Comme ça:

<p>
    @Html.Action(MVC.MeetingActions.ListActions(Model.MeetingId))
</p>

ou si vous insistez sur RenderAction comme ceci:

<p>
    @{Html.RenderAction(MVC.MeetingActions.ListActions(Model.MeetingId));}
</p>

Personnellement, je préfère le premier, fait moins de frappes.

115
Darin Dimitrov

Html.Partial devrait également fonctionner :)

@Html.Partial("View", Model);
33
VladL

J'ai eu le même problème. Ce qui a fonctionné pour moi, c’est d’encapsuler l’expression dans accolades.

@{Html.RenderPartial("viewName", Model);}

27
Ewald

Différence entre Html.RenderAction et Html.Action

Différentes choses à des fins différentes. Consultez le lien ci-dessus.

4
Ahmed