У меня есть набор бритвенных страниц в обычном месте для проекта ASP.NET Core ...
/Pages/Index.cshtml
/Pages/About.cshtml
...etc...
Они используют обычный общий файл макета для предоставления содержимого верхнего и нижнего колонтитула для каждой страницы ...
/Pages/Shared/_Layout.cshtml
Внутри _Layout.cshtml у меня есть якорные теги в верхнем и нижнем колонтитулах страницы для возврата на страницу индекса, как это ...
<a asp-page="\About">About</a>
... который генерирует фактический href 'http://localhost/About'. Это правильно и работает просто отлично. С тех пор я добавил несколько страниц бритвы в области, как это ...
/Areas/Account/Pages/Settings/UserSettings.cshtml
Я хочу, чтобы для страниц области «Учетная запись» отображался тот же заголовок и нижний колонтитул, что и для моих главных страниц, поэтому я установил начальный файл просмотра ...
/Areas/Account/_ViewStart.cshtml
... чтобы использовать уже существующий макет, как это ...
@{
Layout = "/Pages/Shared/_Layout.cshtml";
}
... и, конечно же, моя страница UserSettings теперь отображает верхний и нижний колонтитулы страницы, как и ожидалось. С соответствующими изображениями и текстом.
За исключением одной проблемы . Якорные теги не генерируют правильную ссылку для любой бритвенной страницы в области учетной записи. Вместо генерации ...
href="http://localhost/About"
... он генерирует ...
href="http://localhost/Account/Settings/UserSettings"
Я полагаю, что он генерирует href по умолчанию для страницы UserSettings.
Есть идеи?