不能隐式地将类型void转换为对象。 .NET MVC PartialViewResult

时间:2011-02-07 22:50:02

标签: c# asp.net-mvc asp.net-mvc-3 t4mvc

我有以下控制器操作:

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

    return PartialView(actions);
}

以下操作链接(使用t4MVC和razor语法)

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

然而,这给了我错误:

  

无法隐式将void类型转换为对象

据我所知,控制器动作没问题,那么什么可能给我这个错误?

4 个答案:

答案 0 :(得分:114)

像这样:

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

或者你坚持RenderAction这样:

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

就我个人而言,我更喜欢第一种,减少按键次数。

答案 1 :(得分:32)

Html.Partial也应该有效:)

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

答案 2 :(得分:22)

我有同样的问题。对我有用的是将表达式封装在花括号中。

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

答案 3 :(得分:4)

Difference between Html.RenderAction and Html.Action

用于不同目的的不同事物。 看看上面的链接。