在MVC的项目的解决方案中,有一个RouteConfig.cs文件,这是全局默认路由的配置文件。由代码可以看出程序运行的默认页面是命名空间为MvcDemo.Controllers下的HomeControllor下的Index页面。

 

MVC路由配置指定命名空间

 

MVC路由配置指定命名空间

 

此时程序运行正常。如果添加一个区域如Admin,并且在此区域下添加一个HomeControllor,再次运行程序提示“

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

”错误,如下所示:

MVC路由配置指定命名空间

解决这个问题的方法就是修改RouteConfig.cs文件,添加namespaces: new string[] { "MvcDemo.Controllers" }。

MVC路由配置指定命名空间

这里需要注意的是当你有多个分区时,请在每个区下的AreaRegistration.cs文件都配置路由,下面以Admin区域为例:

MVC路由配置指定命名空间

MVC路由配置指定命名空间

 

相关文章:

  • 2021-11-28
  • 2022-12-23
  • 2022-02-10
  • 2021-07-16
  • 2021-09-03
  • 2021-12-31
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2021-11-26
  • 2021-08-03
  • 2021-10-07
相关资源
相似解决方案