MVC4.0 解决Controllers与Areas中控制器不能同名问题

在使用MVC4.0的时候,不免会遇到在根目录下的Controllers中添加的控制器名称可能会跟在Areas中的某个区域下的控制器名称同样。这个时候访问Areas下面的Controller/Action是没有问题的,可是访问根目录下的地址是就会提示:url

spa

找到多个与名为“Home”的控制器匹配的类型。若是为此请求(“{controller}/{action}/{id}”) 提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此状况。若是是这样,请经过调用含有 'namespaces' 参数的 'MapRoute' 方法的重载来注册此路由。

blog

根据错误提示,咱们须要在默认路由中定义“namespaces”参数的值路由

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "XXXX.WebUI.Controllers" }//解决Controllers与Areas中控制器不能同名问题
            );

 至此就能够访问根目录下的地址了!string

相关文章
相关标签/搜索