在MVC的项目的解决方案中,有一个RouteConfig.cs文件,这是全局默认路由的配置文件。由代码可以看出程序运行的默认页面是命名空间为MvcDemo.Controllers下的HomeControllor下的Index页面。
此时程序运行正常。如果添加一个区域如Admin,并且在此区域下添加一个HomeControllor,再次运行程序提示“
找到多个与名为“Home”的控制器匹配的类型。如果为此请求(“{controller}/{action}/{id}”)提供服务的路由在搜索匹配此请求的控制器时没有指定命名空间,则会发生此情况。如果是这样,请通过调用含有 'namespaces' 参数的 'MapRoute' 方法的重载来注册此路由。
”错误,如下所示:
解决这个问题的方法就是修改RouteConfig.cs文件,添加namespaces: new string[] { "MvcDemo.Controllers" }。
这里需要注意的是当你有多个分区时,请在每个区下的AreaRegistration.cs文件都配置路由,下面以Admin区域为例: