public bool Handle(RequestContext context) { ArticleList articleList = GetArticleList(context.HttpContext.Request.Url.AbsolutePath); if (articleList != null) { IControllerFactory controllerFactory = _controllerManager.ControllerFactory; var controller = controllerFactory.CreateController(context, "ArticleRSS") as Controller; controller.ControllerContext = new ControllerContext(context, controller); var routeValueDictionary = new RouteValueDictionary(); routeValueDictionary["controller"] = "ArticleRSS"; routeValueDictionary["action"] = "Show"; routeValueDictionary["page"] = articleList; controller.RouteData.Values.Merge(routeValueDictionary); controller.RouteData.DataTokens["app"] = MaterialCMSApp.AppWebpages[articleList.GetType()]; var asyncController = (controller as IAsyncController); asyncController.BeginExecute(context, asyncController.EndExecute, null); return(true); } return(false); }