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

ASP.NET MVC路由配置求助:无App_Start文件夹且路由不生效

ASP.NET MVC路由配置问题解决指南

1. 先明确项目类型差异

你创建的是ASP.NET Core MVC项目,而非传统ASP.NET MVC(Framework版本),二者路由配置逻辑完全不同:

  • 传统MVC依赖App_Start/RouteConfig.cs,使用RouteCollection和IgnoreRoute方法
  • ASP.NET Core MVC的路由统一在Program.cs中配置,不存在RouteConfig这套结构

2. 修复Program.cs路由不生效问题

你当前的路由顺序错误,路由匹配遵循从上到下优先匹配原则,默认路由(default)放在前面会拦截所有请求,导致自定义的Read路由无法触发。调整顺序,将自定义路由放在默认路由之前:

// 自定义路由优先匹配
app.MapControllerRoute(
    name: "Read",
    pattern: "{controller=Read}/{action=Welcome}/{id?}");

// 默认路由作为兜底
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");

调整后,访问根路径会默认跳转至Read/Welcome,其他控制器请求则走默认路由规则。

3. 替代传统的IgnoreRoute方法

ASP.NET Core中没有routes.IgnoreRoute,若要忽略.axd这类请求,可在Program.cs中添加以下代码:

// 拦截并忽略.axd结尾的请求
app.Use(async (context, next) =>
{
    if (context.Request.Path.Value.EndsWith(".axd"))
    {
        context.Response.StatusCode = 404;
        return;
    }
    await next();
});

4. 删除自行创建的RouteConfig文件

ASP.NET Core不兼容System.Web.Mvc、RouteCollection等传统MVC命名空间,你创建的RouteConfig文件会因引用这些API报错,直接删除即可,所有路由逻辑都在Program.cs中实现。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:25:05