C# ASP.NET MVC自定义控制器目录
我正在制作一个ASP.NETMVC网站,我有一组相关的表单(我们称之为Foo)。我组织它们的第一次尝试是建立这样的结构: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个
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以保持内容的一致性吗?