ASP.NET MVC2路由问题

时间:2012-10-02 15:48:13

标签: asp.net-mvc-2 asp.net-mvc-routing

我在不同的子文件夹中有两个同名的控制器 我的控制器看起来像

  • 控制器
    • API
      • UserController中
    • 帮助
      • UserController中

我想在用户请求http://mysite/api/User/Index

时访问我的第一个控制器

并在用户请求http://mysite/help/User/Index

时访问我的第二个控制器

如何在Global.asax中配置路由以及视图文件夹的外观如何?

它会是什么样子?

    • 用户
      • API
        • 索引
      • 帮助
        • 索引

谢谢和问候。

1 个答案:

答案 0 :(得分: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吗?它们似乎更适合您的场景。因此,您将定义两个区域:helpapi,并在两者中定义UserController。