【问题标题】:razor pages url in area with prefix带有前缀的区域中的剃刀页面 url
【发布时间】:2019-09-16 07:20:32
【问题描述】:

所以我在这里寻找了很多关于几个主题和学习剃刀页面。但我想不通。

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

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

在我的控制器上,这就像一个魅力。但在我的剃须刀页面上,这似乎并不受欢迎。

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

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

但我不想在我所有的页面上都写这个。 我可以通过一个区域的剃须刀公约轻松做到这一点吗?

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

【问题讨论】:

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


    【解决方案1】:

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

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

    此示例为Identity 区域的根(使用/)配置约定,它遍历所有现有模板并将PREFIX/ 添加到每个模板。

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 2021-01-30
      • 2020-03-29
      • 1970-01-01
      • 2020-02-19
      相关资源
      最近更新 更多