У меня есть ASP. NET Core 3.1 веб-приложение, которое использует Razor Pages со следующим соглашением о маршруте: {tenantId}/{Page}
. Это настраивается с помощью следующего Соглашения о модели маршрута папки:
services.AddMvc().AddRazorPagesOptions(opt =>
{
opt.Conventions.AddFolderRouteModelConvention("/", opt =>
{
foreach (var selector in opt.Selectors)
{
selector.routeModel.Template = "{tenantId}/" + selector.routeModel.Template;
}
});
});
Теперь возникает следующая проблема: создание ссылок.
Например, в представлении Razor Page одной из моих страниц я иметь следующий фрагмент:
<a asp-page="/PageA">Page A</a>
Это, конечно, теперь не генерирует правильную ссылку больше, потому что отсутствует параметр tenantId. Чтобы решить эту проблему, я могу сделать следующее:
@{
var tenantId = RetrieveTenantId();
}
<a asp-page="/PageA" asp-route-tenantId=@tenantId>Page A</a>
Это, однако, довольно много накладных расходов, потому что мне нужно было бы сделать это для каждой ссылки.
Делает ASP. NET У ядра есть какая-нибудь система для автоматического добавления префикса tenantId в каждую ссылку, которую он генерирует? Или для автоматического предоставления значения маршрута tenantId? Какие-либо фильтры или соглашения, которые я могу настроить для выполнения sh этого?