не может неявно преобразовать тип void в объект. .NET MVC Партиалвиевресулт

У меня есть следующее действие контроллера:

[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>

Однако это дает мне ошибку:

не может неявно преобразовать тип void в объект

Насколько я могу судить, действие контроллера в порядке, так что может вызывать эту ошибку?


person MrBliz    schedule 07.02.2011    source источник


Ответы (4)


Нравится:

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

или если вы настаиваете на RenderAction вот так:

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

Лично я предпочитаю первый, делает меньше нажатий клавиш.

person Darin Dimitrov    schedule 07.02.2011
comment
Спасибо. Обалденный синтаксис там. Я предполагаю, что это бритвенный способ сделать ‹%html вместо ‹%=Html ? Какая разница между Action и Renderaction? Фил Хаак говорит, что RenderAction более эффективен? - person MrBliz; 08.02.2011
comment
@ Doozer1979, да, именно так, как у Razor. - person Darin Dimitrov; 08.02.2011
comment
Это также работает: {Html.RenderAction(MVC.MeetingActions.ListActions(Model.MeetingId));}, поэтому использование @ не обязательно. - person FrenkyB; 01.07.2016

Html.Partial также должен работать. :)

@Html.Partial("View", Model);
person VladL    schedule 20.11.2013

Я была такая же проблема. Что сработало для меня, так это инкапсулировать выражение в фигурные скобки.

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

person Ewald    schedule 08.12.2016
comment
Это сработало для меня, однако я понятия не имею, почему добавление фигурных скобок сработает. Можете ли вы уточнить это? - person Brad Thiessen; 12.06.2018
comment
@BradThiessen Это работает, потому что ASP.NET MVC, откровенно говоря, является дрянной структурой, полной явных дыр и плохих дизайнерских решений. Я тоже только что с этим столкнулся. Кто знает почему, но мое терпение истощается с MVC. - person user9993; 14.06.2018
comment
@BradThiessen RenderPartial() - это пустота, используя @, вы говорите, что Razor распечатывает его, что невозможно, поскольку он не создает никакого выходного контента! - person S.Serpooshan; 26.09.2018

Разница между Html.RenderAction и Html.Action

Разные вещи для разных целей. Проверьте приведенную выше ссылку.

person Ahmed    schedule 04.03.2012