2012-10-02 155 views
0

我有兩個控制器在不同的子文件同名 我的控制器看起來像ASP.NET MVC2路由問題

  • 控制器
    • API
      • UserController的
    • 幫助
      • UserCont輥

我希望當用戶請求http://mysite/api/User/Index

訪問我的第一個控制器和當用戶請求http://mysite/help/User/Index

如何在全球配置路由訪問我的第二個控制器。 asax以及視圖文件夾的外觀如何?

它會是什麼樣子?

  • 查看
    • 用戶
      • API
        • 指數
      • 幫助
        • 指數

感謝和問候。

回答

1

你可以使用命名空間的限制:

routes.MapRoute(
    "help", 
    "help/{controller}/{action}", 
    new { controller = "User", action = "Index" }, 
    new[] { "MvcApplication1.Controllers.help" } 
); 

routes.MapRoute(
    "api", 
    "api/{controller}/{action}", 
    new { controller = "User", action = "Index" }, 
    new[] { "MvcApplication1.Controllers.api" } 
); 

至於有你的意見來講子文件夾,這是不支持開箱即用。你將不得不寫一個custom view engine這個工作。

順便問一下,你有沒有考慮使用Areas?他們似乎更適合你的情況。所以你可以定義2個區域:helpapi並且在兩者中定義UserController。

+0

地區是一個很好的選擇謝謝Darin的幫助 – hazem