我正在尝试使用 MVC Futures 库中强类型的 Html.RenderAction
我试图从我的 Site.Master 调用我的主 HomeController (area = "") 上的导航操作
<% Html.RenderAction<HomeController>(x=>x.Navigation()); %>
在我将另一个 HomeController 添加到我的 Admin 便携式区域之前,这非常有效。然后我开始出现以下错误:
找到了与名为“Home”的控制器匹配的多种类型。如果为该请求提供服务的路由未指定命名空间来搜索与请求匹配的控制器,则可能会发生这种情况。如果是这种情况,请通过调用采用“namespaces”参数的“MapRoute”方法的重载来注册此路由。
'Home' 的请求找到了以下匹配的控制器:Areas.Admin.Controllers.HomeController Web.Controllers.HomeController
我能够通过使用以下非 mvccontrib 强类型 RenderAction 方法解决该问题。我宁愿在页面上没有这个非强类型方法,有没有办法让 mvccontrib 方法接受一个区域,或者让他们知道根据指定的控制器的路由或命名空间生成区域。
<% Html.RenderAction("Navigation", "Home", new { area = "" }); %>
我已经添加到我的 global.asax.cs 文件中,以支持具有如下所示默认区域的多个控制器,并且我还验证了这是我的控制器的正确命名空间。
_routeCollection.MapRoute("Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new[] { "Web.Controllers" });