Verhindert, dass URL-Routing in bestimmten Verzeichnissen und allem, was darin enthalten ist, einschließlich Unterverzeichnissen, stattfindet
-
12-12-2019 - |
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");
}
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.