как обрабатывать маршрутизацию на странице asp. net core razor? - PullRequest
0 голосов
/ 17 апреля 2020

У меня есть две страницы Home.cs html и Job.cs html

в файле запуска. Я управляю этим

services.AddRazorPages().AddRazorPagesOptions(options =>
        {              
            options.Conventions.AddPageRoute("/Home", "/{handler?}");
        });


services.AddRazorPages().AddRazorPagesOptions(options =>
            {
                options.Conventions.AddPageRoute("/Job", "{*url}");
            });

Я хочу чтобы открыть этот URL для Home.cs html

http://localhost:44004/au/hospital-jobs-in-India

и второй URL-адрес, я хочу открыть это в Job.cs html

http://localhost:44004/best-jobs-in-India/Page-3/NewsData

Примечание: Теперь моя проблема является то, что для обоих URL он ударил Job.cshtml, но я хочу нажать для отдельных страниц.

1 Ответ

0 голосов
/ 20 апреля 2020

Вы должны понимать, что такое дружественные маршруты на страницах Razor. Так как ваш текущий шаблон маршрута, /au и /au/ будет отображаться на страницу Home, приложение отлавливает любой URL, который не соответствует физическому файлу, а /au/hospital-jobs-in-India отображается на страницу Job, поскольку маршрут не выполняется. не соответствует первому дружественному маршруту, но соответствует шаблону маршрута {*url}. Вы должны изменить маршрут в соответствии с вашими требованиями, например, изменить первый шаблон маршрута, например /au/{handler?}.

Кроме того, вам не нужно регистрироваться AddRazorPages несколько раз, вы можете напрямую добавить несколько AddPageRoute внутри одного AddRazorPagesOptions.

...