0

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

  • 控制器
    • api
      • 用户控制器
    • 帮助
      • 用户控制器

我想在用户请求时访问我的第一个控制器http://mysite/api/User/Index

并在用户请求时访问我的第二个控制器http://mysite/help/User/Index

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

它会是什么样子?

  • 意见
    • 用户
      • api
        • 指数
      • 帮助
        • 指数

谢谢并恭祝安康。

4

1 回答 1

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" }
);

就视图的子文件夹而言,不支持开箱即用。您必须编写一个自定义视图引擎才能使其工作。

顺便说一句,您是否考虑过使用Areas?它们似乎更适合您的场景。因此,您将定义 2 个区域:help并且api在两个区域中都定义了 UserController。

于 2012-10-02T16:07:43.173 回答