You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在客户端项目中自定义Razor类库页面的访问URL

ASP.NET Core 6 RCL 页面自定义访问路径配置方法

你不需要修改RCL类库的源码,直接在引用RCL的客户端项目里做服务配置即可实现路径自定义,以下是可直接落地的配置方式:

  • 保留原路径,新增自定义访问路径
    打开客户端项目的Program.cs,在注册Razor Pages服务的代码段追加路由约定配置,示例代码如下:

    var builder = WebApplication.CreateBuilder(args);
    
    // 原有注册Razor Pages的代码,追加路由配置
    builder.Services.AddRazorPages()
        .AddRazorPagesOptions(opt =>
        {
            // 第一个参数是RCL内页面的默认路由路径,第二个参数是你要自定义的新路径
            opt.Conventions.AddPageRoute("/Page1", "/Foo/Page1");
        });
    

    配置完成后,/Page1和/Foo/Page1两个路径都可以正常访问到RCL里的Page1页面。

  • 完全替换原路径,仅保留自定义路径
    如果你不想让原默认路径/Page1可访问,只保留新的/Foo/Page1路径,用下面的配置直接修改路由模板即可:

    builder.Services.AddRazorPages()
        .AddRazorPagesOptions(opt =>
        {
            opt.Conventions.AddFolderRouteModelConvention("/", model =>
            {
                foreach (var selector in model.Selectors)
                {
                    if (selector.AttributeRouteModel.Template?.Equals("Page1", StringComparison.OrdinalIgnoreCase) == true)
                    {
                        selector.AttributeRouteModel.Template = "Foo/Page1";
                    }
                }
            });
        });
    

    配置生效后,访问原/Page1路径会返回404,仅/Foo/Page1可正常访问。

  • 批量给RCL所有页面加统一前缀
    如果你后续在RCL里新增了多个页面,想给所有RCL页面统一加上/Foo前缀,不需要逐页配置,可以在上面的遍历逻辑里判断页面来源为RCL程序集后,统一给路由模板拼接Foo/前缀即可。

配置完成后重启客户端项目即可生效,不需要修改RCL内的任何页面代码,完全符合类库复用、使用方自定义路由的需求。

内容的提问来源于stack exchange,提问作者lonix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 05:00:57