示例#1
0
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            // TODO: allow user to configure a default page so we're not hardcoding here
            routes.MapRoute(
                name: "Default1",
                url: "",
                defaults: new { controller = "Home", action = "ViewPage", page = "Index" }
            );

            // enumerate all controllers which implement 'GenericPageController' and register them here
            // TODO: find a better solution that doesn't involve third party code
            var controllers = new Areas.PlexAdmin.Controllers.ControllerController();
            controllers.Index()
                .Where(c => c.IsPageController)
                .ToList()
                .ForEach(c=>{
                    routes.MapRoute(
                        name: "PlexCMS_" + c.ID,
                        url: c.ID + "/{page}",
                        defaults: new { controller = c.ID, action = "ViewPage", page = "Index" }
                    );
                });

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );
        }