2010-03-15 16 views
6

Estoy creando un proyecto ASP.NET MVC 2 (RTM) que usa áreas. La acción de índice del controlador de inicio de un área necesita usar RenderAction para generar una subsección de la página. La acción llamada también se define en el mismo controlador doméstico. Así que la llamada debe ser sólo:RenderAction no encuentra el método de acción en el controlador actual en el área actual

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

Sin embargo, me sale una excepción:

Un método de acción pública 'Lista' no se encontró en RareBridge.Web.Areas.Events.Controllers controlador. HomeController '.

Tenga en cuenta que soy no en el área "Eventos"! Estoy en un área completamente diferente. Si elimino el controlador doméstico "Eventos", entonces la excepción aún ocurre pero nombra un controlador diferente (aún no el que yo quiero que llame).

También intenté proporcionar el nombre y el área del controlador al método RenderAction, pero ocurre la misma excepción. ¿Que esta pasando aqui?

Por cierto: estoy usando Autofac como mi contenedor IoC

Respuesta

4

uso de la sobrecarga que tiene RenderAction routeValues ​​como parámetro y utilizar la propiedad zona para redirigir a un área específica:

F.I.

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

Probablemente la acción que llame tiene un atributo de filtro (es decir, AcceptVerbs) que no coincide con la solicitud actual. Elimine los filtros de la acción "Lista" e intente de nuevo.

+1

¡Eres un campeón! –

+5

Esto probablemente debería marcarse como la respuesta. – Chris

Cuestiones relacionadas