Переопределение маршрута не работает на страницах бритвы asp. net core 3.1 - PullRequest
0 голосов
/ 03 апреля 2020

Я использую Asp.Net Core 3.1 Razor pages. Мне нужно переопределить маршрут для одной из страниц в моей области.

У меня есть Home страница в моем Area - Blog, и текущий маршрут localhost/blog/home. Мне нужно изменить это на localhost/blog. У меня есть страница Index в той же области блога, но у нее есть параметр маршрута. Так будет localhost/blog/my-blog-name. И это не будет мешать localhost/blog

Я добавил настройку в ConfigureServices в startup.cs

services
    .AddRazorPagesOptions(options => 
    {
        options.Conventions.AddAreaPageRoute("Blog", "/", "/blog/home");
    });

Вот моя структура папок,

enter image description here

Но когда я перехожу на localhost/blog, я получаю 404 не найден. Пожалуйста, помогите, где я не прав.

1 Ответ

1 голос
/ 06 апреля 2020

У меня есть Домашняя страница в моем Area - Blog, и текущий маршрут localhost/blog/home. Мне нужно изменить это на localhost/blog. У меня есть страница Index в той же области блога, но у нее есть параметр маршрута.

при переходе на локальный хост / блог я получаю 404 не найден.

Если вы проверите определение AddAreaPageRoute метод , вы можете найти, что он принимает Название области, название страницы и шаблон маршрута, как показано ниже.

.AddAreaPageRoute("{area_name_here}", "{page_name_here}", "{route_here}")

Исходя из ваших требований и кода, мы можем обнаружить, что вы неправильно настроили указанный маршрут к странице, и если ваша Index страница в области блога принимает обязательный (не обязательный) параметр маршрута , что приведет к ошибке 404 при просмотре localhost/blog.

Чтобы устранить проблему и выполнить требование, вы можете попробовать изменить код, как показано ниже.

services.AddRazorPages()
    .AddRazorPagesOptions(
        options =>
        {
            options.Conventions.AddAreaPageRoute("Blog", "/home", "/blog");
        }
    );

Результат теста

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...