RenderAction在当前区域的当前控制器中找不到动作方法

时间:2010-03-15 14:59:29

标签: asp.net asp.net-mvc asp.net-mvc-2 autofac renderaction

我正在创建一个使用区域的ASP.NET MVC 2(RTM)项目。一个区域的Home控制器的Index操作需要使用RenderAction来生成页面的子部分。调用的操作也在同一个Home控制器中定义。所以电话应该只是:

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

然而,我得到一个例外:

  

在控制器'RareBridge.Web.Areas.Events.Controllers.HomeController'上找不到公共操作方法'List'。

请注意,我在“事件”区域中!我在一个完全不同的领域。如果我删除“事件”家庭控制器,那么异常仍然会发生,但命名一个不同的控制器(仍然不是我想要它调用的控制器)。

我也尝试过为RenderAction方法提供控制器名称和区域,但是会发生同样的异常。这是怎么回事?

BTW:我使用Autofac作为我的IoC容器

2 个答案:

答案 0 :(得分:15)

您调用的操作可能包含与当前请求不匹配的过滤器属性(即AcceptVerbs)。从“列表”操作中删除过滤器,然后重试。

答案 1 :(得分:4)

使用renderaction重载,它将routeValues作为参数,并使用area属性重定向到特定区域:

f.i。

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