2014-10-27 87 views
0

我有一個文件夾中的控制器內部我的應用程序名爲admin裝箱,所以我的文件夾結構看起來像這樣asp.net路由無法找到方法

-Models 
| 
-Views 
| 
-Controller 
    | 
    |-HomeController.cs 
    | 
    |-Admin 
    | 
    |-HomeController.cs <-- in this controller, i have methods Add,Delete,View 

我需要創建一個路由,這樣,如果我輸入網址http://localhost:2336/admin/add,它會執行家庭控制器的add方法,但我得到一個404錯誤。

public static void RegisterRoutes(RouteCollection routes) 
     { 
      routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); 

      routes.MapRoute(
      name: "Admin", 
      url: "Admin/{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }, 
      namespaces: new[] { "fms.Controllers.Admin" } 
      ); 

      routes.MapRoute(
       "Default", // Route name 
       "{controller}/{action}/{id}", // URL with parameters 
       new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults 
      ); 

     } 

回答

1

您的管理員指定的路線是這樣的路線:

Admin/{controller}/{action}/{id} 

這意味着您的網址,你需要有控制器名稱以及動作。例如,這應該工作:

http://localhost:2336/admin/home/add 

如果更改URL路由到這一點,將工作:

Admin/{action}/{id} 

但是,這並不意味着它是一個有點毫無意義有你的管理控制器,它自己夾。如果我是你,我會查找如何創建一個新的MVC區域。

+0

我得到這個錯誤'發現多個類型與名爲'Home'的控制器相匹配'。' – Smith 2014-10-27 17:37:27

+0

您可能需要爲其他路由指定一個名稱空間。或者使用一個區域,使所有這些消失:) – DavidG 2014-10-27 17:38:33

+0

我已經做了'fms.Controllers.Admin'或者你在談論默認路線 – Smith 2014-10-27 17:49:03