Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net core 按约定自定义Razor页面中的链接生成_Asp.net Core_Razor_Razor Pages - Fatal编程技术网

Asp.net core 按约定自定义Razor页面中的链接生成

Asp.net core 按约定自定义Razor页面中的链接生成,asp.net-core,razor,razor-pages,Asp.net Core,Razor,Razor Pages,我有一个ASP.NET Core 3.1 web应用程序,它使用具有以下路由约定的Razor页面:{tenantId}/{Page}。 这是通过以下文件夹路由模型约定设置的: services.AddMvc().AddRazorPagesOptions(opt=> { opt.Conventions.AddFolderRouteModelConvention(“/”,opt=> { foreach(可选选择器中的变量选择器) { selector.routeModel.Template=“{te

我有一个ASP.NET Core 3.1 web应用程序,它使用具有以下路由约定的Razor页面:
{tenantId}/{Page}
。 这是通过以下文件夹路由模型约定设置的:

services.AddMvc().AddRazorPagesOptions(opt=>
{
opt.Conventions.AddFolderRouteModelConvention(“/”,opt=>
{
foreach(可选选择器中的变量选择器)
{
selector.routeModel.Template=“{tenantId}/”+selector.routeModel.Template;
}
});
});
现在是下一个问题:生成链接

例如,在我的一个页面的Razor页面视图中,我有以下代码片段:

<a asp-page="/PageA">Page A</a>
A页
这当然不再生成正确的链接,因为缺少tenantId参数。 要解决此问题,我可以执行以下操作:

@{
    var tenantId = RetrieveTenantId();
}
<a asp-page="/PageA" asp-route-tenantId=@tenantId>Page A</a>
@{
var tenantId=RetrieveTenantId();
}
A页
然而,这是相当大的开销,因为我需要为每个链接执行此操作

ASP.NET Core是否有任何系统可以在其生成的每个链接中自动注入tenantId前缀?或者自动提供租户路由值?
我可以配置任何筛选器或约定来完成此任务吗?

您的启动设置在我的项目中不正确。您的asp.net core版本是什么?asp.net core 3.1。我有一个小的拼写错误,我刚刚纠正了。我有几天没在电脑前,所以我不能进一步测试它。