C# ASP.NET MVC自定义控制器目录

C# ASP.NET MVC自定义控制器目录,c#,.net,asp.net,asp.net-mvc,routing,C#,.net,Asp.net,Asp.net Mvc,Routing,我正在制作一个ASP.NETMVC网站,我有一组相关的表单(我们称之为Foo)。我组织它们的第一次尝试是建立这样的结构: Controllers/FooController.cs Controllers/Foo/Form1Controller.cs Controllers/Foo/Form2Controller.cs Controllers/Foo/Form3Controller.cs ... …并且有这样的路线: Foo/{type}/{action}/{id} 不幸的是,由于大约有8个

我正在制作一个ASP.NETMVC网站,我有一组相关的表单(我们称之为Foo)。我组织它们的第一次尝试是建立这样的结构:

Controllers/FooController.cs
Controllers/Foo/Form1Controller.cs
Controllers/Foo/Form2Controller.cs
Controllers/Foo/Form3Controller.cs
...
…并且有这样的路线:

Foo/{type}/{action}/{id}
不幸的是,由于大约有8个Foo子类型,
FooController
变得相当大,并且包含了它自己的子路由信息。我的下一次尝试是采用这种结构:

Controllers/FooController.cs
Controllers/Foo/Form1Controller.cs
Controllers/Foo/Form2Controller.cs
Controllers/Foo/Form3Controller.cs
...
每个表单都有一个控制器,这对我来说更有意义,因为这基本上就是我在应用程序中用于其他表单的布局

不幸的是,我似乎找不到任何简单的路线:

Foo/{controller}/{action}/{id}
…映射到:

Controllers/Foo/{controller}Controller.cs
基本上,我想做的是告诉ASP.NET MVC,我希望所有与Foo路由匹配的路由在
Controllers
Foo
子文件夹中查找它们的控制器。有没有什么简单的方法可以通过路由实现这一点,或者我需要编写自己的
IControllerFactory


谢谢。

我想你要的是。

我想你要的是。

你试过RouteConstraint吗?这与目录无关,而与控制器名称有关,但非常简单-您应该尝试:

routes.MapRoute("FooControllers",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" },
    new { controller = @"(Form1)|(Form2)|(Form3)" }
);
或:


你试过RouteConstraint吗?这与目录无关,而与控制器名称有关,但非常简单-您应该尝试:

routes.MapRoute("FooControllers",
    "{controller}/{action}/{id}",
    new { controller = "Home", action = "Index", id = "" },
    new { controller = @"(Form1)|(Form2)|(Form3)" }
);
或:


我最终使用了这里讨论的解决方案的一个变体:


我最终使用了此处讨论的解决方案的一种变体:


NT Controllers/Foo/Form1Controller.aspx应该是Controllers/Foo/Form1Controller.cs吗?除非我遗漏了什么。对,但问题还是一样的。我现在来修复。控制器/Foo/Form1Controller.aspx是否应该是控制器/Foo/Form1Controller.cs?除非我遗漏了什么。对,但问题还是一样的。我现在要修复。这仍然不允许我在控制器下的子文件夹中包含我的Foo表单。这仍然不允许我在控制器下的子文件夹中包含我的Foo表单。简单的查找很好。应该是在MVC的下一个版本中构建的。是的,我很惊讶它这么复杂。然而,我想这只是1.0。@cdmckay我并不认为Haacked的网站会崩溃或消失,但你能总结一下Stackoverflow以保持内容的一致性吗?很好的简单发现。应该是在MVC的下一个版本中构建的。是的,我很惊讶它这么复杂。然而,我想这只是1.0。@cdmckay我不认为Haacked的网站会崩溃或消失,但你能总结一下Stackoverflow以保持内容的一致性吗?