c# - 带前缀的区域中的 razor 页面 url

标签 c# asp.net-core razor-pages asp.net-core-2.2

所以我在这里查看了很多主题并学习了页面。但我无法弄清楚。

所以在我的设置中我有区域

Identity
    /pages
    /account
    /login
services
    .AddMvc(cfg =>
    {
        cfg.UseCentralRoutePrefix(new RouteAttribute(path));
    })

在我的 Controller 上,这就像一个魅力。但在我的 Razor 页面上,这似乎并没有得到尊重。

所以现在我必须把它写在我的 *.cshtml 中。

@page "~/PREFIX/identity/account/login2"

但我不想在我的所有页面上都写这个。 我可以通过在某个区域上进行 Razor 约定来轻松完成此操作吗?

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

最佳答案

Razor Pages 路由通过 conventions 配置并且不受 application model 的影响MVC 中使用的。为了应用影响区域中所有页面的自定义约定,您可以使用如下所示的目标区域和根文件夹:

services.AddMvc()
    .AddRazorPagesOptions(o =>
    {
        o.Conventions.AddAreaFolderRouteModelConvention("Identity", "/", pageRouteModel =>
        {
            foreach (var selectorModel in pageRouteModel.Selectors)
                selectorModel.AttributeRouteModel.Template = "PREFIX/" + selectorModel.AttributeRouteModel.Template;
        });
    });

此示例为 Identity 区域的根(使用 /)配置约定,该约定会迭代所有现有模板并添加 PREFIX/ 每个。

关于c# - 带前缀的区域中的 razor 页面 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55873338/

相关文章:

c# - 枚举值在 razor 页面 ASP.NET Core 3.1 上不显示 EnumMember 值

c# - 关于拳击的问题

c# - 从 Azure Function HttpTrigger 返回错误详细信息

c# - 如何在 C# 中创建转发方法调用的代理对象?

c# - 尝试发布到 Azure 后,ASP.NET Core 应用程序不使用 appsettings.json 中的设置

javascript - Razor View 模型绑定(bind)使用javascript函数

c# - 使两个窗体控件随窗口均匀调整大小

c# - Entity Framework Core 和 SQL Server 2016 时态表

javascript - 为什么我的 Google Maps API 回调在前面的内联脚本之前执行?

c# - 发布到 ASP.NET Core 3.1 Web 应用程序时, "[FromBody]MyClass data"通常为空