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

Asp.Net Core 2新建应用遇RouteCreationException路由创建错误求助

解决ASP.NET Core 2路由创建错误问题

嗨,我来帮你排查这个问题!你遇到的RouteCreationException通常和路由配置、控制器存在性或者中间件顺序有关,咱们一步步来解决:

  • 首先检查路由模板语法
    错误提示里的路由模板是{controller=Home}/{action=Index}/{id=?},这里的{id=?}是错误的写法!ASP.NET Core路由里,可选参数的正确格式是{id?}(问号直接跟在参数名后面),而不是{id=?}。如果你的实际代码里不小心写成了后者,赶紧改成{id?},这是最常见的触发这个错误的原因。

  • 确认Home控制器存在且正确
    路由默认指向Home控制器的Index动作,如果你项目里还没创建HomeController,或者控制器里没有Index方法,路由找不到对应的目标也会报错。你需要确保有这样的控制器类:

    using Microsoft.AspNetCore.Mvc;
    
    public class HomeController : Controller
    {
        public IActionResult Index()
        {
            return Content("Hello from Home Index!"); // 或者返回View()都可以
        }
    }
    
  • 调整中间件顺序
    看你的Configure方法代码,app.UseMvc()之后调用了app.Run()——Run是终端中间件,会拦截所有到达它的请求,这会导致你的MVC路由永远不会被执行!虽然这不是路由创建错误的直接原因,但会让你的路由配置完全没用,所以建议直接移除app.Run(async (context) => { ... })这段代码,让MVC路由来处理请求。

修改后的Configure方法应该是这样的:

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }

    app.UseMvc(routes =>
    {
        routes.MapRoute(
            name: "default",
            template: "{controller=Home}/{action=Index}/{id?}"
        );
    });
}

按照上面的步骤排查后,应该就能解决这个路由创建错误啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:20:18