C# 带有前缀的区域中的razor页面url

C# 带有前缀的区域中的razor页面url,c#,asp.net-core,razor-pages,asp.net-core-2.2,C#,Asp.net Core,Razor Pages,Asp.net Core 2.2,所以我在这里看了很多关于几个主题的文章,并学习了Razorpages。但我想不出什么 所以在我的设置中,我有一个区域 身份 /页数 /帐目 /登录 服务 .AddMvc(cfg=> { UseCentralRoutePrefix(新路由属性(路径)); }) 在我的控制器上,这就像一个符咒。但在我的剃须刀页面上看起来这是不光荣的 所以现在我必须在我的*.cshtml中编写这个 @page "~/PREFIX/identity/account/login2" 但是我不想把这些写在我所有的页面

所以我在这里看了很多关于几个主题的文章,并学习了Razorpages。但我想不出什么

所以在我的设置中,我有一个区域

身份
/页数
/帐目
/登录
服务
.AddMvc(cfg=>
{
UseCentralRoutePrefix(新路由属性(路径));
})
在我的控制器上,这就像一个符咒。但在我的剃须刀页面上看起来这是不光荣的

所以现在我必须在我的*.cshtml中编写这个

@page "~/PREFIX/identity/account/login2"
但是我不想把这些写在我所有的页面上。 我可以在一个区域轻松地使用剃须刀吗

.AddRazorPagesOptions(options => {...}); ???

Razor页面路由是通过配置的,不受MVC中使用的影响。为了应用影响某个区域中所有页面的自定义约定,可以使用以下内容将区域和根文件夹作为目标:

services.AddMvc()
    .AddRazorPagesOptions(o =>
    {
        o.Conventions.AddAreaFolderRouteModelConvention("Identity", "/", pageRouteModel =>
        {
            foreach (var selectorModel in pageRouteModel.Selectors)
                selectorModel.AttributeRouteModel.Template = "PREFIX/" + selectorModel.AttributeRouteModel.Template;
        });
    });
此示例为
标识
区域的根配置约定(使用
/
),该约定迭代所有现有模板,并向每个模板添加
前缀/