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

Asp.Net MVC Core中HomeController的WebApi Http Get接口无法访问

解决ASP.NET Core WebAPI访问localhost/home/Test出现404的问题

兄弟,你这404问题主要是路由配置没到位,我帮你拆解下问题和解决办法:

核心问题:控制器缺少路由基配置

你给Test方法加了[HttpGet("Test")]属性,但这个是相对路径,需要依托控制器的基础路由才能生效。你的HomeController没有添加路由属性,ASP.NET Core没法把/home/Test这个请求映射到对应的方法上。

具体修改步骤

  1. 给控制器添加路由属性
    给HomeController加上[Route("[controller]")],这样控制器的基础路由就是/home(系统会自动去掉控制器名里的Controller后缀),配合方法上的[HttpGet("Test")],就能匹配/home/Test这个路径了。修改后的代码如下:

    namespace JB.Controllers {
     [Route("[controller]")] // 新增控制器路由基配置
     public class HomeController : Controller {
     private readonly IConfiguration _configuration;
     public HomeController(IConfiguration configuration) {
     _configuration = configuration;
     }
     [AllowAnonymous]
     [HttpGet("Test")] // 现在会映射到 /home/Test
     public IEnumerable<string> Test() {
     return new string[] { "Tvalue1", "Tvalue2" };
     }
     }
    }
    
  2. 检查路由中间件是否启用
    打开你的Program.cs(如果是旧版本.NET是Startup.cs),确保在中间件配置里添加了app.MapControllers();——这是启用属性路由的关键,没有它的话,你加的路由属性都不会生效。示例代码片段:

    var app = builder.Build();
    
    // 其他中间件(比如Swagger、静态文件等)的配置...
    
    app.MapControllers(); // 必须添加这一行,启用属性路由
    
    app.Run();
    
  3. 修正URL的斜杠问题
    你访问的localhost\home\Test里用了反斜杠\,浏览器的URL应该用正斜杠/,改成http://localhost:你的端口号/home/Test(记得替换成你项目实际运行的端口)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:08:03