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

ASP.NET Core如何配置端点路由?接口访问报错该如何解决?

问题原因与解决方案

核心错误原因

你访问的端点路径与实际路由规则不匹配:
你在StudentController类上定义的路由模板为[Route("api/[controller]/[action]")],其中两个占位符的替换规则如下:

  • [controller]:自动替换为控制器类名去掉Controller后缀的内容,这里对应Student
  • [action]:自动替换为Action的名称,你通过[ActionName("GetData")]指定了当前Action的名称为GetData
    所以这个接口的正确完整路径是localhost:5001/api/Student/GetData,你之前访问的路径缺少了/Student段,因此返回错误码。

关于Startup配置的说明

你当前Startup.cs里的endpoints.MapControllers()配置已经完全满足需求,不需要额外添加其他路由规则。这个配置会让ASP.NET Core自动读取控制器、Action上的路由特性完成请求匹配,不需要额外做全局路由映射,除非你有特殊的统一路由规则需求。

可选调整方案

如果你确实需要用localhost:5001/api/GetData路径访问接口,可以任选以下一种修改方式:

  • 修改控制器层级路由模板:将类上的[Route("api/[controller]/[action]")]改为[Route("api/[action]")],去掉控制器名占位符,所有该控制器下的接口都会自动省略控制器名段
  • 为单个Action覆盖路由:在GetData方法上添加特性[HttpPost("/api/GetData")],路由路径开头加/会忽略控制器层级的路由模板,直接使用当前定义的路径匹配

查看ASP.NET Core版本的方法

打开项目根目录下后缀为.csproj的文件,找到TargetFramework节点,节点值中net后面的数字就是你使用的版本,比如<TargetFramework>net8.0</TargetFramework>对应ASP.NET Core 8.0。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 11:42:01