查看英文原文:Attribute Based Routing in ASP.NET MVC
在 ASP.NET MVC 4 以及之前的版本中,路由选择专门是通过向一个 RouteCollection 中添加路径来处理的。尽管开始的时候路由使用的是简单的约定,但是随着网站的发展以及特殊情况的积累,它会变得非常复杂。由于路由和它们所适用的控制器是物理隔离的,它能够采取一些侦探性的工作理解关系。
随着 ASP.NET MVC 5 的引入,Microsoft 希望通过使用基于属性的路由简化体验。使用同样的基础模式语法作为命令模型,可以将声明式的 Route 属性应用到控制器方法上。
为了给一个给定的控制器指定一个默认的路由,我们可以简单地向类中添加 Route 属性,属性路径为“{action=method}”,其中的“method”是默认方法的名字。你还可以将 RoutePrefix 属性应用到一个控制器上,这样可以减少控制器包含的路径的长度。Area 注册也可以废弃不用了,用户可以使用 RouteArea 属性替代。
这些路由支持约束、可选 URI 参数以及默认值。MVC 约束遵循的规则和 Web API 基于属性的路由相同。