После перемещения вашей страницы About в новую подпапку Pages / Public и все еще хотите сохранить "/ About" в качестве URL этой страницы, вы можете изменить свой маршрут дляна этой странице это то, что нужно сделать:
Изменить <a asp-page="/About">About</a>
на <a asp-page="/Public/About">About</a>
asp-page
помощник по тегам ожидает путь к файлу страницы бритвы, а не URL.Он будет генерировать окончательный URL-адрес на основе соглашений или пользовательских маршрутов, которые вы добавляете.
В вашем методе ConfigureServices
вам необходимо настроить, чтобы / Public / About страница бритвы использовала /About
какмаршрут, а не /Public/About
, который будет использоваться по умолчанию, если вы его не настроите.Таким образом, вы должны иметь это в своем методе:
services.AddMvc()
.AddRazorPagesOptions(
options => options.Conventions.AddPageRoute("/Public/About", "/About")
);
Первый параметр метода AddPageRoute
- это путь к странице бритвы, а второй параметр - новый маршрут.Поэтому, если вы запустите приложение и нажмете на ссылку About
, вы увидите, что /About
будет точно соответствовать /Public/About
.Браузер также не содержит /Public/
.
Проверьте официальную документацию , если хотите узнать больше о пользовательской маршрутизации для Razor Pages.