Остановка URL-маршрутизации в определенных каталогах и во всем, что в них содержится, включая подкаталоги.
-
12-12-2019 - |
Вопрос
Я использую URL-маршрутизацию для своего приложения и хотел бы предотвратить URL-маршрутизацию для чего-либо, начиная с Staff/, но использование следующего кода не работает. Как я могу заставить 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");
}
Решение 2
Решение состоит в том, чтобы сделать запись генеракодицетагкода.
Другие советы
Если вы используете WebForms, а не MVC, как я полагаю, попробуйте использовать StopRoutingHandler:
routes.Add(new Route("staff/", new StopRoutingHandler()));
С использованием Routes.Ignore
может работать в MVC (не уверен в этом), но не работает в приложении WebForms.
Назначая StopRoutingHandler в качестве обработчика по умолчанию для этого пути, вы по сути сообщаете приложению, что все запросы должны обрабатываться этим обработчиком, который блокирует все последующие попытки маршрутизации внутри этого каталога.