我有以下 API 控制器
[ApiController]
[Route("api/[controller]")]
public class SubContractsController: ControllerBase
{
private readonly ISubContractsRepository subContractsRepository;
public SubContractsController(ISubContractsRepository subContractsRepository)
{
this.subContractsRepository = subContractsRepository;
}
[HttpGet]
public async Task <ActionResult<IEnumerable<SubContract>>> GetSubContracts()
{
try....
我没有通过 https://localhost:7059/api/subcontracts (全小写)得到结果,因为下面的三个 URL 都给了我想要的结果。请注意,以下 URL 中 S 和 C 的大写字母不同。
https://localhost:7059/api/Subcontracts https://localhost:7059/api/subContracts https://localhost:7059/api/SubContracts
路由是否区分大小写,如果是的话,为什么它适用于除一个组合之外的所有组合? 如何禁用区分大小写的性质?
文本匹配不区分大小写并且基于解码的 URL 路径的表示。
阅读this,了解更多有关路线的信息。
我没有得到 https://localhost:7059/api/subcontracts 的结果(完整 小写)
再试一次,也许有问题。我可以使用小写和全部大小写。
结果:
我想确认我自己已经看到并解决了这个问题。是真的。为了进行验证,我使用 InPrivate 浏览器打开,API 按预期工作。这不是代码或.NET,而是浏览器。我想确认一下这个消息,以便人们可以知道解决方案。