当您使用区域并且在区域和根内部具有 相同的控制器 名称时,经常会出现此错误消息。例如,您有两个:
~/Controllers/HomeController.cs
~/Areas/Admin/Controllers/HomeController.cs
为了解决此问题(如错误消息所提示),可以在声明路由时使用名称空间。因此,在主要路线定义中
Global.asax:
routes.MapRoute( "Default", "{controller}/{action}/{id}", new { controller = "Home", action = "Index", id = UrlParameter.Optional }, new[] { "AppName.Controllers" });并在您的
~/Areas/Admin/AdminAreaRegistration.cs:
context.MapRoute( "Admin_default", "Admin/{controller}/{action}/{id}", new { action = "Index", id = UrlParameter.Optional }, new[] { "AppName.Areas.Admin.Controllers" });如果您不使用区域,则似乎两个应用程序都托管在同一个ASP.NET应用程序中,并且会发生冲突,因为您在不同的命名空间中定义了相同的控制器。如果要避免这种冲突,则必须将IIS配置为将这两个作为单独的ASP.NET应用程序托管。如果您无权访问服务器,请询问您的主机提供商。



