我正在为我的应用程序使用URL路由,并希望阻止URL路由发生在以staff /开头的任何事情上,但使用以下代码它不起作用,我如何获得ASP.Net以防止URL路由接触工作人员dir和它的子目录?
private static void RegisterRoutes(RouteCollection Routes)
{
//URLs to ignore routeing on
RouteTable.Routes.Ignore("staff/");
//Good routes
Routes.MapPageRoute("Reviews", "{Category}/{RouteName}/Reviews.aspx", "~/RouteFiles/Reviews.aspx");
Routes.MapPageRoute("Races", "{Category}/{RouteName}/Races.aspx", "~/RouteFiles/Races.aspx");
Routes.MapPageRoute("SectionHomePage", "{Category}/{RouteName}", "~/RouteFiles/SectionHomePage.aspx");
}
答案 0 :(得分:1)
如果您使用的是WebForms而不是MVC,我假设尝试使用StopRoutingHandler:
routes.Add(new Route("staff/", new StopRoutingHandler()));
使用Routes.Ignore
可能在MVC中工作(不确定),但它在WebForms应用程序中不起作用。
通过将StopRoutingHandler指定为此路径的默认处理程序,您基本上可以告诉应用程序所有请求都应由此处理程序处理,该处理程序会阻止以下所有在此目录中路由的尝试。
答案 1 :(得分:0)
解决方案是制作RouteTable.Routes.Ignore()
条目。