Example #1
0
 protected virtual void OnPostResolveRequestCache(object sender, EventArgs e)
 {
     var httpContext = new HttpContextWrapper(HttpContext.Current);
     var routeData = RouteTable.Routes.GetRouteData(httpContext);
     if (null == routeData)
     {
         return;
     }
     var requestContext = new RequestContext { RouteData = routeData, HttpContext = httpContext };
     var handler = routeData.RouteHandler.GetHttpHandler(requestContext);
     httpContext.RemapHandler(handler);
 }
 public IController CreateController(RequestContext requestContext, string controllerName)
 {
     string typeName = controllerName + "Controller";
     List<string> namespaces = new List<string>();
     namespaces.AddRange(requestContext.RouteData.Namespaces);
     namespaces.AddRange(ControllerBuilder.Current.DefaultNamespaces);
     foreach (var ns in namespaces)
     {
     string controllerTypeName = string.Format("{0}.{1}", ns, typeName);
     Type controllerType = controllerTypes.FirstOrDefault(type => string.Compare(type.FullName, controllerTypeName, true) == 0);
     if (null != controllerType)
     {
         return (IController)Activator.CreateInstance(controllerType);
     }
     }
     return null;
 }
Example #3
0
 public IHttpHandler GetHttpHandler(RequestContext requestContext)
 {
     return new MvcHandler(requestContext);
 }
Example #4
0
 public MvcHandler(RequestContext requestContext)
 {
     this.RequestContext = requestContext;
 }
Example #5
0
 public void Execute(RequestContext requestContext)
 {
     var context = new ControllerContext { RequestContext = requestContext, Controller = this };
     var actionName = requestContext.RouteData.ActionName;
     this.ActionInvoker.InvokeAction(context, actionName);
 }