今天在項目中遇到一個問題,在MVC下想創建一個區域的後臺Boss視圖,出現了"找到多個與名爲「home」的控制器匹配的類型"的問題,但願下面的解決方案可以幫助到你們ide
這是網站的總體結構,在Areas區域下有一個Boss的管理區域,解決問題只須要將最外層的路由和Boss下的路由設置命名空間就能夠了.網站
這是最外層的路由設置:url
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.Mvc; 6 using System.Web.Routing; 7 8 namespace QNJY.Web 9 { 10 public class RouteConfig 11 { 12 public static void RegisterRoutes(RouteCollection routes) 13 { 14 routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 15 16 routes.MapRoute( 17 name: "Default", 18 url: "{controller}/{action}/{id}", 19 defaults: new { controller = "Default", action = "Index", id = UrlParameter.Optional }, 20 namespaces: new string[] { "QNJY.Web.Controllers" } 21 ); 22 } 23 } 24 }
這是Boss下的路由(BossAreaRegistration.cs)配置:spa
1 using System.Web.Mvc; 2 3 namespace QNJY.Web.Areas.Boss 4 { 5 public class BossAreaRegistration : AreaRegistration 6 { 7 public override string AreaName 8 { 9 get 10 { 11 return "Boss"; 12 } 13 } 14 15 public override void RegisterArea(AreaRegistrationContext context) 16 { 17 context.MapRoute( 18 "Boss_default", 19 "Boss/{controller}/{action}/{id}", 20 new { controller = "Login", action = "Index", id = UrlParameter.Optional }, 21 namespaces: new string[] { "QNJY.Web.Areas.Boss.Controllers" } 22 ); 23 } 24 } 25 }
這個是重點:namespaces: new string[] { "QNJY.Web.Areas.Boss.Controllers" }