Остановка URL-маршрутизации в определенных каталогах и во всем, что в них содержится, включая подкаталоги.

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

Вопрос

Я использую 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 в качестве обработчика по умолчанию для этого пути, вы по сути сообщаете приложению, что все запросы должны обрабатываться этим обработчиком, который блокирует все последующие попытки маршрутизации внутри этого каталога.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top