asp.net-mvc – 如何在大型asp.net mvc项目中管理路由

在大型(100个控制器和不断增长的)MVC项目中管理URL路由的策略是什么?区域有所帮助,但它们的用处似乎有限,因为它们无法嵌套.随着项目的发展,我注意到了一些重点:

> SEO友好的路线(每个seo路线需要一个特殊的定义)
>旧路由的重定向(需要301个旧URL到更新的等价物)
>测试路线(有什么比手动测试更好,比硒更轻?)

此外,随着路线数量的增加,性能不会降低吗?定义路由的方式表明性能至少为O(n * k),其中n是定义的路由的数量,k是url的长度.

最佳答案 需要考虑的几个问题可能会让您更轻松:

>控制器之间是否有共享功能?
>有没有办法为控制器创建通用模式,并使用控制器引发的一些事件来提供通用功能(即以一致的模式从数据库中提取数据)?
>每个控制器之间的根本区别是什么?

这些问题的原因是我看到了几个潜在的解决方案:

>假设您在IIS 7或更高版本上运行,那么您可以将功能分解为每个区域的多个MVC项目.使用IIS 7及更高版本(对于部署),这变得更加容易.
>假设呈现数据的一致模式,通用控制器或路由可以使这更容易,允许您折叠控制器.
>基本控制器允许共享功能,同时呈现每个控制器所需的专业化.

总而言之,我建议尝试根据目的将您的代码库分解为多个MVC项目,以帮助建立在您的项目持续增长时似乎正在逐渐消失的理智感.

点赞