コード例 #1
0
        public virtual void PostResolveRequestCache(HttpContextBase context)
        {
            //1.传入当前上下文对象,得到与当前请求匹配的RouteData对象
            MyRouteData routeData = RouteCollection.GetRouteData(context);

            if (routeData == null)
            {
                return;
            }

            //2.从RouteData对象里面得到当前的RouteHandler对象。
            IMyRouteHandler routeHandler = routeData.RouteHandler;

            if (routeHandler == null)
            {
                return;
            }

            //3.根据RequestContext对象得到处理当前请求的HttpHandler(MvcHandler)。
            IHttpHandler httpHandler = routeHandler.GetHttpHandler(routeData, context);

            if (httpHandler == null)
            {
                return;
            }

            //4.请求转到HttpHandler进行处理(进入到ProcessRequest方法)。这一步很重要,由这一步开始,请求才由UrlRoutingModule转到了MvcHandler里面
            context.RemapHandler(httpHandler);
        }
コード例 #2
0
ファイル: MyRoute.cs プロジェクト: 1244952898/CSharp
 //在全局配置里面写入路由规则以及默认配置
 public MyRoute(string url, Dictionary <string, object> defaultPath, IMyRouteHandler routeHandler)
 {
     TemplateUrl  = url;
     DefaultPath  = defaultPath;
     RouteHandler = routeHandler;
 }