你的位置:首页 > ASP.net教程

[ASP.net教程]找到多个与名为“Login”的控制器匹配的类型


添加了mvc区域以后,可能出现以下错误...

 

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

“Login”请求找到下列匹配的控制器:
LSUnion.Site.Areas.Admin.Controllers.LoginController
LSUnion.Site.Controllers.LoginController

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: 找到多个与名为“Login”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有 'namespaces' 参数的 'MapRoute' 方法的重载来注册此路由。

“Login”请求找到下列匹配的控制器:
LSUnion.Site.Areas.Admin.Controllers.LoginController
LSUnion.Site.Controllers.LoginController

源错误: 

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。


堆栈跟踪:

 

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

 

提示已经很明白了,那么解决方法是: 重点 namespaces:

 

 1 public class RouteConfig 2   { 3     public static void RegisterRoutes(RouteCollection routes) 4     { 5       routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 6  7       routes.MapRoute( 8         name: "Default", 9         url: "{controller}/{action}/{id}",10         defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 11         namespaces: new string[] { "LSUnion.Site.Controllers" }12       );13     }14   }