Несколько маршрутов к одной странице бритвы - PullRequest
0 голосов
/ 14 февраля 2020

Справочная информация

У меня есть страница бритвы на моем Asp. Net Core 3.1 веб-сайте под названием RegistrationAndApply. По сути, это копия и вставка идентификационной страницы реестра, но:

  • С некоторыми дополнительными полями
  • Позволяет передавать необязательный applyid как часть маршрута
  • Если я передаю applyId как часть маршрута, я делаю пару изменений меток на странице и перенаправляю пользователя куда-то еще

Я хочу создать два маршрута для этой страницы:

/identity/account/signupandapply/{applyId?} 'when the user is applying and signing up
/identity/account/signup 'when the user is just signing up

В верхнюю часть страницы я добавил следующее:

@page "{applyId?}"

И установил applyId в качестве необязательного параметра для метода OnGetAsyn c:

public async Task OnGetAsync(string returnUrl = null, Guid? applyId = null)

Issue

Маршрут с applyId работает, а маршрут / identity / account / signup - нет.

Я пытался добавить это в свой запуск :

services.AddMvc()
        .AddRazorPagesOptions(options => options.Conventions
                             .AddPageRoute("/identity/account/signupandapply", "/identity/account/signup")
                             );

Это работает, если я go к одному из этих

/identity/account/signupandapply/<fooapplyid>
/identity/account/signupandapply

Но не к этому

/identity/account/signup

Есть идеи, что я делаю неправильно для чего следует добавлять простой альтернативный маршрут?

1 Ответ

1 голос
/ 17 февраля 2020

Страница (/identity/account/signupandapply) находится в области Identity, поэтому вам нужно использовать AddAreaPageRoute вместо AddAreaPage:

services.AddRazorPages().AddRazorPagesOptions(options =>
{

    options.Conventions.AddAreaPageRoute("Identity",
           "/account/signupandapply", "identity/account/signup");

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