2011-02-07 179 views
66

我有以下的控制器動作:不能隱式地將void類型轉換爲對象。 .NET MVC PartialViewResult

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

    return PartialView(actions); 
} 

而下面的操作鏈接(使用t4MVC和剃刀語法)

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

然而,這給我的錯誤:

cannot implicitly convert type void to object

據我可以告訴控制器的行動是好的,那麼有什麼可以給我這個錯誤?

回答

104

像這樣:

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

,或者如果你堅持RenderAction這樣的:

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

個人而言,我更喜歡第一個,讓較少的按鍵。

+1

謝謝。那裏有趣的語法。我認爲這是做<%html而不是<%= Html的剃鬚刀方式?無論如何,Action和Renderaction之間有什麼區別。 Phil Haack說RenderAction更有效率? – MrBliz 2011-02-07 23:08:01

+2

@ Doozer1979,是的,這就是剃刀的方式。 – 2011-02-07 23:09:43

9

我有同樣的問題。對我來說有效的是將其表達式封裝在大括號中。

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

相關問題