1

我正在为我的应用程序使用 URL 路由,并希望防止 URL 路由发生在以人员/开头的任何事情上,但使用以下代码它不起作用,我怎样才能让 ASP.Net 防止 URL 路由接触人员目录它是子目录?

    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");
}
4

2 回答 2

1

如果您使用的是 WebForms 而不是我假设的 MVC,请尝试使用StopRoutingHandler

routes.Add(new Route("staff/", new StopRoutingHandler()));

UsingRoutes.Ignore可能在 MVC 中工作(不确定),但它在 WebForms 应用程序中不起作用。

通过将 StopRoutingHandler 指定为此路径的默认处理程序,您基本上告诉应用程序所有请求都应由此处理程序处理,这会阻止所有后续在此目录中路由的尝试。

于 2012-10-02T23:44:11.577 回答
0

解决方案是进行RouteTable.Routes.Ignore()条目。

于 2013-10-18T22:26:32.033 回答