路径控制器位于子文件夹中

Viv*_*ndi 0 c# asp.net-mvc asp.net-mvc-3

我有一个MVC3项目,在我的Controllers文件夹中有一个"sub"文件夹.现在我想创建一个路径到该子文件夹内的控制器.但我怎么能这样做?

这对我来说似乎不起作用:

context.MapRoute("Test", "SubFolder/Test",
            new { Controller = "SubFolder/Test", Action = "Index" });
Run Code Online (Sandbox Code Playgroud)

所以子文件夹的名称就SubFolder在那里,我有一个名为的控制器TestController.cs.我该如何为它创建MapRoute?

Dar*_*rov 5

控制器的子文件夹没有这样的概念.控制器只是C#类,您可以在任何地方存储它们.在路由配置中,您应该只提到控制器名称:

context.MapRoute(
    "Test", 
    "SubFolder/Test",
    new { controller = "Test", action = "Index" }
);
Run Code Online (Sandbox Code Playgroud)

如果你想拥有2个同名的控制器,你需要在定义路由时指定命名空间约束:

context.MapRoute(
    "Test", 
    "SubFolder/Test",
    new { controller = "Test", action = "Index" },
    new[] { "MvcApplication.Controllers.SubFolder" }
);
Run Code Online (Sandbox Code Playgroud)

因此,当您导航到时http://example.com/subfolder/test,将执行TestController的Index操作.