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?
控制器的子文件夹没有这样的概念.控制器只是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操作.