MVC4.0 解決Controllers與Areas中控制器不能同名問題

在使用MVC4.0的時候,不免會遇到在根目錄下的Controllers中添加的控制器名稱可能會跟在Areas中的某個區域下的控制器名稱同樣。這個時候訪問Areas下面的Controller/Action是沒有問題的,可是訪問根目錄下的地址是就會提示:url

spa

找到多個與名爲「Home」的控制器匹配的類型。若是爲此請求(「{controller}/{action}/{id}」) 提供服務的路由在搜索匹配此請求的控制器時沒有指定命名空間,則會發生此狀況。若是是這樣,請經過調用含有 'namespaces' 參數的 'MapRoute' 方法的重載來註冊此路由。

blog

根據錯誤提示,咱們須要在默認路由中定義「namespaces」參數的值路由

routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional },
                namespaces: new string[] { "XXXX.WebUI.Controllers" }//解決Controllers與Areas中控制器不能同名問題
            );

 至此就能夠訪問根目錄下的地址了!string

相關文章
相關標籤/搜索