我正在创建一个使用区域的 ASP.NET MVC 2 (RTM) 项目。一个区域的Home Controller 的Index Action 需要使用RenderAction来生成页面的一个子区域。调用的操作也在同一个 Home Controller 中定义。所以调用应该是:
<% Html.RenderAction("List") %>
但是,我遇到了一个异常(exception):
A public action method 'List' was not found on controller 'RareBridge.Web.Areas.Events.Controllers.HomeController'.
请注意,我不在“事件”区域!我在一个完全不同的区域。如果我删除“事件”主 Controller ,则异常仍然会发生,但会命名另一个 Controller (仍然不是我希望它调用的 Controller )。
我还尝试向 RenderAction 方法提供 Controller 名称和区域,但出现了相同的异常。这是怎么回事?
顺便说一句:我使用 Autofac 作为我的 IoC 容器
最佳答案
您调用的操作可能具有与当前请求不匹配的过滤器属性(即 AcceptVerbs)。从“列表”操作中删除过滤器,然后重试。
关于asp.net - RenderAction 在当前区域的当前 Controller 中找不到操作方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2448041/