RenderAction, не находящий метод действия в текущем контроллере в текущей области

Я создаю ASP.NET MVC 2 (RTM) проект, который использует области. Индексное действие Домашнего контроллера одной области должно использовать RenderAction для генерации подраздела страницы. Названное действие также определяется в том же Домашнем контроллере. Таким образом, вызов должен просто быть:

<% Html.RenderAction("List") %>

Однако я получаю исключение:

Общедоступный метод действия 'Список' не был найден на контроллере 'RareBridge. Сеть. Области. События. Контроллеры. HomeController'.

Обратите внимание, что я не нахожусь в области "Events"! Я нахожусь в совершенно другой области. Если я удаляю "События" домашний контроллер, то исключение все еще происходит, но называет другой контроллер (все еще тот, который я хочу, чтобы это назвало).

Я также попытался обеспечить название контроллера и область к методу RenderAction, но то же исключение происходит. Что продолжается здесь?

BTW: Я использую Autofac в качестве своего контейнера МОК

6
задан Rui Jarimba 13 April 2013 в 12:41
поделиться

2 ответа

Используйте перегрузку renderaction, которая принимает routeValues в качестве параметра и использует свойство area для перенаправления на определенную область:

f.i.

<% Html.RenderAction("Edit", module.Value, new { area = "Modules", id = module.Key }); %>
4
ответ дан 8 December 2019 в 12:19
поделиться

Возможно, вызываемое вами действие имеет атрибут filter (т.е. AcceptVerbs), который не соответствует текущему запросу. Удалите фильтры из действия "List" и попробуйте снова.

15
ответ дан 8 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: