ASP.NET Core 6中无参数Get接口为何返回404无法访问?
ASP.NET Core 6 无参数Get接口返回404的原因
核心问题是路由路径不匹配:
- 你的控制器路由是
api/[controller](即api/deals),无参数的[HttpGet]没有额外路由模板,所以该方法对应的路由是api/deals。但你浏览器访问的是api/deals/total,这个路径没有匹配的路由规则,因此返回404。 - Swagger能正常测试是因为Swagger生成的测试地址是正确的
api/deals,而非你手动输入的api/deals/total。 - 带参数的
[HttpGet("{par}")]对应的路由是api/deals/{par},当访问api/deals/任意数字时,数字会绑定到int? par参数,因此能匹配到方法并正常返回。
如果要让无参数方法通过api/deals/total访问,只需给[HttpGet]添加路由模板:
[HttpGet("total")] public int GetTotal() { return 174; }
修改后该方法的路由变为api/deals/total,与你访问的路径完全匹配,即可正常返回结果。
内容的提问来源于stack exchange,提问作者ZedZip
相关产品推荐
相关产品推荐

