我有一个 CMS 系统,我正在使用路由来获取页面名称。我需要在第一项和最后一项(页面名称)之间有无限的值(子目录、产品名称、不同的本地化)。
例如:
/产品/计算机/ComputerType1/
和
/Productos/Ordenadores/ComputerType1/
其中 ComputerType1 是页面名称。
routes.Add(new Route("{*route}/{pageName}", routeHandler));
我找不到将路由的中间部分 ({*route}) 设为通配符的方法,以便可以在页面名称前面放置无限数量的子目录。目前我只能通过默认的通配符路由来解决这个问题,例如:
routes.Add(new Route("{*route}", routeHandler));
抓住一切。但是,即使您在上面的路由代码中将其指定为忽略,通配符似乎也允许输入 gif url:
routes.Ignore("{resource}.axd/{*pathInfo}");
routes.Ignore("{resource}.asmx/{*pathInfo}");
routes.Ignore("{resource}.ashx/{*pathInfo}");
routes.Ignore("{resource}.gif/{*pathInfo}");
routes.Ignore("{resource}.png/{*pathInfo}");
routes.Ignore("{resource}.jpg/{*pathInfo}");
routes.Ignore("{resource}.ico/{*pathInfo}");
routes.Ignore("{resource}.pdf/{*pathInfo}");
routes.Ignore("{resource}.css/{*pathInfo}");
routes.Ignore("{resource}.js/{*pathInfo}");
有没有更好的方法来做到这一点?这应该通过自定义路由处理程序来处理吗?