2010-03-15 12 views
6

Tworzę projekt ASP.NET MVC 2 (RTM), który używa obszarów. Akcja Index kontrolera Home jednego obszaru musi używać RenderAction do wygenerowania podsekcji strony. Wywoływana akcja jest również zdefiniowana w tym samym kontrolerze głównym. Więc połączenie powinno być po prostu:Metoda renderowania nie znajduje metody akcji w bieżącym kontrolerze w bieżącym obszarze

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

Jednak uzyskać wyjątek:

czynność publiczna metoda „Lista” nie znaleziono „RareBridge.Web.Areas.Events.Controllers kontrolera. HomeController ".

Pamiętaj, że jestem nie w obszarze "Wydarzenia"! Jestem w zupełnie innym obszarze. Jeśli usunę kontroler macierzysty "Zdarzenia", to wyjątek będzie nadal występował, ale wymieni inny kontroler (wciąż nie ten, który chcę wywołać).

Próbowałem również podać nazwę kontrolera i obszar do metody RenderAction, ale występuje ten sam wyjątek. Co tu się dzieje?

BTW: Używam Autofac jako mojego kontenera IoC

Odpowiedz

4

Korzystanie przeciążenie renderaction która odbywa routeValues ​​jako parametr i korzystać z nieruchomości w okolicy przekierować do konkretnego obszaru:

f.i.

<% Html.RenderAction("Edit", module.Value, new { area = "Modules", id = module.Key }); %> 
14

Prawdopodobnie wybrane działanie ma atrybut filtru (np. AcceptVerbs), który nie pasuje do bieżącego żądania. Usuń filtry z akcji "Lista" i spróbuj ponownie.

+1

Jesteś mistrzem! –

+5

To prawdopodobnie powinno być oznaczone jako odpowiedź. – Chris

Powiązane problemy