Evitar que el enrutamiento de URL ocurra en ciertos directorios y todo lo que contiene, incluidos los subdirectorios

StackOverflow https://stackoverflow.com//questions/12699923

Pregunta

Estoy usando el enrutamiento de URL para mi aplicación y me gustaría evitar que ocurra el enrutamiento de URL en cualquier elemento que comience con el personal, pero al usar el siguiente código no funciona, ¿cómo puedo hacer que ASP.Net evite que el enrutamiento de URL toque el directorio del personal? ¿Y sus subdirectorios?

    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");
}
¿Fue útil?

Solución 2

La solución es hacer un RouteTable.Routes.Ignore() entrada.

Otros consejos

Si está utilizando formas web y no MVC, que asumo, intente usar StoproutingHandler :

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

El uso de Routes.Ignore puede funcionar en MVC (no está seguro de eso), pero no funciona en una aplicación de formas web.

Al asignar el StopRoutingHandler como controlador predeterminado para esta ruta, básicamente le dice a la solicitud de que todas las solicitudes deben ser manejadas por este controlador, que bloquea todos los siguientes intentos de ruta dentro de este directorio.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top