1

我正在阅读以下有关编程标准主题的区域的答案:

https://softwareengineering.stackexchange.com/questions/1338/worst-coding-standard-youve-ever-had-to-follow/1937#1937

我倾向于同意@Cumbayah 的说法,但我不得不承认,有一个地方我依靠区域来保持代码整洁。这在 Global.asax 中是为了让我的一长串路线保持清晰。

问题是,有 5 到 10 个控制器,每个控制器都有一些路由,其中​​一些专门用于某些操作方法,而另一些则更通用。因此,我们谈论的是在 Global.asax 中的单个方法中定义的约 30、40、50 种路由定义。现在我将它们划分为不同的#Regions,为每个控制器进行整理,但肯定有一点臭味!我有更好的方法吗?

4

4 回答 4

4
  1. 根据中午,考虑使用区域

  2. 根据 eglasius,考虑将路由注册问题移出global.asax并移入单独的文件。查看RouteInitialiser“谁能帮助我”示例应用程序中的课程,了解一种方法。

  3. 考虑通过采用更好的路由注册 API 来干燥你的路由配置,比如 Steve Hodgkiss 的restful-routing东西http://github.com/stevehodgkiss/restful-routing

  4. 不要出汗。如果你有很多控制器,你就会有很多路由。无法解决这个问题;)

哦,5)摆脱你的地区。

于 2010-09-12T02:03:59.910 回答
2

除了区域之外,如果每个控制器有大约 5-10 个,那么有什么问题:

ConfigureAccountControllerRoutes(routes);
ConfigureSomeOtherControllerRoutes(routes);

或者就像在我当前的项目中一样,它甚至不在 global.asax 中,而是在一个专门用于配置路由的类中。这是最近在我们开始需要 global.asax 来做除了路由 + 错误日志之外的其他事情时引入的。

于 2010-09-12T01:18:59.430 回答
1

我认为您想研究所谓的“区域”;它们应该允许您将代码分割成,您猜对了,区域,并指定其中的路由和其他项目。

于 2010-09-12T00:22:19.833 回答
0

这是我使用的快速技巧:

只需在控制器中创建一个静态函数来设置路由,如下所示:

public static void SetRoutes (ref RouteCollection routes)
{
    routes.MapRoute(...);
}

然后从你的RegisterRoutes()函数中调用它。这实际上并没有做任何重要的事情,但它使大量路由更易于维护,并允许您通过控制器对路由进行分组。

于 2010-09-12T13:02:51.763 回答