nie można niejawnie przekonwertować typu void na obiekt. .NET MVC PartialViewResult


91

Mam następującą akcję kontrolera:

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

    return PartialView(actions);
}

I następujący link do akcji (używając t4MVC i składni maszynki do golenia)

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

Jednak to daje mi błąd:

nie może niejawnie przekonwertować typu void na obiekt

O ile wiem, działanie kontrolera jest w porządku, więc co może powodować ten błąd?

Odpowiedzi:


126

Lubię to:

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

lub jeśli nalegasz w RenderActionten sposób:

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

Osobiście wolę pierwszy, robi mniej naciśnięć klawiszy.


1
Dziękuję Ci. Funky tam składnia. Zakładam, że to brzytwa sposób na zrobienie <% html zamiast <% = Html? Jaka jest różnica między Action a Renderaction. Phil Haack mówi, że RenderAction jest bardziej wydajne?
MrBliz,

2
@ Doozer1979, tak, dokładnie, to jest sposób Razor.
Darin Dimitrov

Działa to również: {Html.RenderAction (MVC.MeetingActions.ListActions (Model.MeetingId));}, więc używanie @ nie jest konieczne.
FrenkyB


36

Miałem ten sam problem. W moim przypadku zadziałało umieszczenie wyrażenia w nawiasach klamrowych .

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


To zadziałało w moim przypadku, ale nie mam pojęcia, dlaczego dodanie zamków do loków miałoby działać. Czy możesz to rozwinąć?
Brad Thiessen,

1
@BradThiessen To działa, ponieważ ASP.NET MVC jest, szczerze mówiąc, tandetną platformą pełną rażących dziur i kiepskich decyzji projektowych. Właśnie na to natknąłem się. Kto wie dlaczego, ale moja cierpliwość słabnie w przypadku MVC.
user9993

10
@BradThiessen RenderPartial()jest pustką, używając @, jak mówisz, Razor do wydrukowania, co nie jest możliwe, ponieważ nie generuje żadnej treści wyjściowej!
S.Serpooshan

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.