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

如何从RouteConfig.cs获取友好URL与对应aspx页面的映射列表?

获取RouteConfig中页面与友好URL映射列表的简便方法

你不需要手动解析RouteConfig.cs文本,ASP.NET已经提供了现成的路由集合可以直接读取。注册后的路由都会存在RouteTable.Routes里,我们可以从中提取所需的映射关系。

步骤1:定义实体类

先创建你需要的PageNames类:

public class PageNames
{
    public string Page { get; set; }
    public string FriendlyURL { get; set; }
}

步骤2:实现获取方法

编写GetPageNamesFromRouteConfig方法,遍历路由集合,筛选出使用MapPageRoute注册的路由(这类路由的Handler是PageRouteHandler类型),然后提取关键信息:

using System.Collections.Generic;
using System.Web.Routing;
using System.Web.UI;

public List<PageNames> GetPageNamesFromRouteConfig()
{
    var pageNameList = new List<PageNames>();
    
    foreach (RouteBase routeBase in RouteTable.Routes)
    {
        // 只处理MapPageRoute创建的路由
        if (routeBase is Route route && route.RouteHandler is PageRouteHandler pageHandler)
        {
            // 提取友好URL
            string friendlyUrl = route.Url;
            
            // 从完整物理路径中截取页面文件名
            string pagePath = pageHandler.VirtualPath;
            string pageName = System.IO.Path.GetFileName(pagePath);
            
            pageNameList.Add(new PageNames
            {
                Page = pageName,
                FriendlyURL = friendlyUrl
            });
        }
    }
    
    return pageNameList;
}

步骤3:调用示例

直接调用方法即可得到你需要的列表:

List<PageNames> pageNames = GetPageNamesFromRouteConfig();

补充说明

  • 这个方法会自动获取所有通过MapPageRoute注册的路由映射,无需手动维护配置文本。
  • 如果你的友好URL包含参数(比如user/{id}/profile),route.Url会保留占位符,可根据需求自行处理参数部分。
  • 确保在路由注册完成后调用该方法(比如Application_Start执行完毕后),否则可能获取不到完整的路由列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 14:48:23