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

如何在ASP.NET Core MVC中创建数字路由并回退至默认规则?

实现整数路径匹配+默认路由回退的方案

嘿,这个需求在ASP.NET(不管是传统MVC还是Core版本)里通过路由配置就能轻松实现,我给你拆解清楚怎么做:

核心思路

路由匹配是按注册顺序优先匹配的,所以我们要把更严格的整数路径规则放在前面,默认规则放在后面,这样当请求不符合整数路径格式时,就会自动回退到默认路由。


1. ASP.NET MVC(传统框架)配置方式

打开项目里的App_Start/RouteConfig.cs,按顺序添加以下路由规则:

public class RouteConfig
{
    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        // 第一步:注册整数路径的专属路由
        routes.MapRoute(
            name: "IntegerPath",
            url: "{id1:int}/{id2:int}", // :int是路由约束,确保两段都是整数
            defaults: new { controller = "YourTargetController", action = "YourTargetAction" }
        );

        // 第二步:注册默认回退路由
        routes.MapRoute(
            name: "Default",
            url: "{controller=Home}/{action=Index}/{id?}"
        );
    }
}

2. ASP.NET Core配置方式

如果是ASP.NET Core项目,在Program.cs(或Startup.cs)里配置:

var builder = WebApplication.CreateBuilder(args);

// 添加控制器服务
builder.Services.AddControllersWithViews();

var app = builder.Build();

// 其他中间件配置(比如静态文件、错误页等)
app.UseStaticFiles();
app.UseRouting();

// 第一步:注册整数路径的专属路由
app.MapControllerRoute(
    name: "IntegerPath",
    pattern: "{id1:int}/{id2:int}",
    defaults: new { controller = "YourTargetController", action = "YourTargetAction" }
);

// 第二步:注册默认回退路由
app.MapControllerRoute(
    name: "Default",
    pattern: "{controller=Home}/{action=Index}/{id?}"
);

app.Run();

关键注意事项

  • 路由顺序绝对不能搞反:必须把严格的整数路由放在默认路由前面,否则默认路由会先匹配所有符合控制器/方法格式的请求,导致你的整数路径规则永远不会被触发。
  • 替换目标控制器和方法:把代码里的YourTargetController和YourTargetAction换成你实际要处理这个整数路径请求的控制器和方法名。比如你要处理商品分类和ID,就改成controller = "Product", action = "CategoryDetails"。
  • 接收参数:在目标Action里要对应接收两个整数参数,比如:
    public IActionResult CategoryDetails(int id1, int id2)
    {
        // 这里处理id1和id2对应的业务逻辑
        return View();
    }
    

内容的提问来源于stack exchange,提问作者mohammad rostami siahgeli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:10:26