Verhindert, dass URL-Routing in bestimmten Verzeichnissen und allem, was darin enthalten ist, einschließlich Unterverzeichnissen, stattfindet

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

Frage

Ich verwende URL-Routing für meine Anwendung und möchte verhindern, dass URL-Routing bei allem auftritt, was mit „staff/“ beginnt, aber mit dem folgenden Code funktioniert es nicht. Wie kann ich ASP.Net dazu bringen, zu verhindern, dass URL-Routing das Stabverzeichnis berührt? und es sind Unterverzeichnisse?

    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");
}
War es hilfreich?

Lösung 2

Die Lösung besteht darin, eine zu erstellen RouteTable.Routes.Ignore() Eintrag.

Andere Tipps

Wenn Sie WebForms und nicht MVC verwenden, was ich annehme, versuchen Sie es mit StopRoutingHandler:

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

Benutzen Routes.Ignore Funktioniert möglicherweise in MVC (ich bin mir nicht sicher), aber in einer WebForms-Anwendung funktioniert es nicht.

Indem Sie StopRoutingHandler als Standardhandler für diesen Pfad zuweisen, teilen Sie der Anwendung grundsätzlich mit, dass alle Anforderungen von diesem Handler verarbeitet werden sollen, der alle folgenden Versuche blockiert, innerhalb dieses Verzeichnisses weiterzuleiten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top