我正在阅读关于编程标准主题的区域的以下答案:
我倾向于同意@Cumbayah所说的内容,但我必须承认,有一个地方我依赖地区来保持代码整洁。这是在Global.asax中保持我的长长的路线清单有点清晰。
问题是,有5到10个控制器,每个控制器都有一些路径,其中一些专门用于某些操作方法,而另一些则更通用。因此,我们正在谈论〜在Global.asax中的单个方法中定义的30,40,50个路由定义。现在我将它们分成不同的#Regions,每个控制器都要整理一下,但确实有一个臭味!我有更好的方法吗?
答案 0 :(得分:4)
1)按照中午,考虑使用区域
2)根据eglasius,考虑将路径注册问题从global.asax
移到单独的文件中。查看“谁可以帮助我”示例应用程序中的RouteInitialiser
课程,了解一种方法。
3)考虑通过采用更好的路由注册API来干预您的路由配置,例如Steve Hodgkiss的 restful-routing 内容http://github.com/stevehodgkiss/restful-routing
4)不要流汗。如果你有很多控制器,你会有很多路线。无法解决这个问题;)
哦,和5)摆脱你的地区,因为地区吮吸屁股;)
答案 1 :(得分:2)
除了区域,如果每个控制器有~5-10,那么问题是什么:
ConfigureAccountControllerRoutes(routes);
ConfigureSomeOtherControllerRoutes(routes);
或者在我当前的项目中,它甚至不在global.asax中,而是在专用于配置路由的类中。最近,当我们开始需要global.asax来做除路由+错误记录之外的其他事情时,这是最近引入的。
答案 2 :(得分:1)
我想你想调查所谓的“Areas”;它们应该允许您将代码分段,您猜对了,区域,并指定路由和其他项目。
答案 3 :(得分:0)
这是我使用的快速黑客:
只需在控制器中创建一个静态函数来设置路径,如下所示:
public static void SetRoutes (ref RouteCollection routes)
{
routes.MapRoute(...);
}
然后从RegisterRoutes()
函数中调用它。这实际上没有做任何重要的事情,但它使大量的路由更容易维护,并允许您通过控制器分组路由。