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

.NET+Angular模板API控制器路由失效(404)求助

问题分析与解决方案

你的自定义TestController使用了属性路由([Route("[controller]")]),但当前Program.cs中缺少了属性路由的匹配配置,导致请求无法映射到控制器。自带的WeatherForecastController能正常工作是因为模板默认隐含了相关配置,而复制后失效也验证了路由配置是核心问题。

修复步骤

修改Program.cs,在UseRouting()之后添加app.MapControllers()——这个方法专门用于识别带有[ApiController]和属性路由的控制器:

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddControllers();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseHsts();
}

app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();

// 新增该行:启用属性路由的API控制器匹配
app.MapControllers();

app.MapControllerRoute(
    name: "default",
    pattern: "{controller}/{action=Index}/{id?}");

app.MapFallbackToFile("index.html");

app.Run();

原理说明

  • MapControllers()会扫描所有标记了[ApiController]的控制器,根据它们的[Route]、[HttpGet]等属性匹配请求,是属性路由生效的必要步骤。
  • 原代码中的MapControllerRoute是针对MVC视图控制器的约定路由,无法处理属性路由定义的API请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 04:40:23