之前写了一篇《MVC路由机制》,今天想了一个实例来加强一下,这才对得起观众。让大家能够系统的理解MVC的路由机制。
扩展思路
从上一篇文章(MVC路由机制)中,我们可以比较容易的发现,UrlRoutingModule通过遍历RouteTable.Routes中的路由对象来获取匹配的RouteData,从而将请求转发到相应的IHttpHandler处理程序。从整个过程中,我们可以从三个地方对MVC的路由进行扩展:Route,IRouteHandler和IRouteConstraint。
简单回顾一下:
Route:它继承实现RouteBase。RouteTable.Routes是一个RouteBase对象集合,可向集合中添加任何RouteBase的子类。所以,我们可以通过创建一个RouteBase的子类,然后将其添加到RouteTable.Routes集合中,以此实现自定义路由规则。
IRouteHandler:UrlRoutingModule在获取到合适的RouteData后,将通过其RouteHandler属性来获取实际的IHttpHandler对象,通过IHt